Mercurial > octave-libtiff
annotate scripts/image/imread.m @ 31211:edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
* scripts/image/imwrite.m: modified tests to correctly handled the new
behavior for alpha channel in Tiff images.
* scripts/image/imread.m: added a note in the function documentation
about the alpha channel behavior for Tiff images.
author | magedrifaat <magedrifaat@gmail.com> |
---|---|
date | Tue, 06 Sep 2022 21:12:29 +0200 |
parents | 796f54d4ddbf |
children |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30330
diff
changeset
|
3 ## Copyright (C) 2002-2022 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
7 ## |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
9 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22558
diff
changeset
|
13 ## (at your option) any later version. |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
14 ## |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22558
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22558
diff
changeset
|
18 ## GNU General Public License for more details. |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
19 ## |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
25 |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20338
diff
changeset
|
27 ## @deftypefn {} {[@var{img}, @var{map}, @var{alpha}] =} imread (@var{filename}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20338
diff
changeset
|
28 ## @deftypefnx {} {[@dots{}] =} imread (@var{url}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20338
diff
changeset
|
29 ## @deftypefnx {} {[@dots{}] =} imread (@dots{}, @var{ext}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20338
diff
changeset
|
30 ## @deftypefnx {} {[@dots{}] =} imread (@dots{}, @var{idx}) |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
31 ## @deftypefnx {} {[@dots{}] =} imread (@dots{}, @var{param1}, @var{value1}, @dots{}) |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
32 ## Read images from various file formats. |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
33 ## |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
34 ## Read an image as a matrix from the file @var{filename} or from the online |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
35 ## resource @var{url}. If neither is given, but @var{ext} was specified, look |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
36 ## for a file with the extension @var{ext}. |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
37 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
38 ## The size and class of the output depends on the format of the image. A |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
39 ## color image is returned as an @nospell{MxNx3} matrix. Grayscale and |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
40 ## black-and-white images are of size @nospell{MxN}@. Multipage images will |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
41 ## have an additional 4th dimension. |
17350 | 42 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
43 ## The bit depth of the image determines the class of the output: |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
44 ## @qcode{"uint8"}, @qcode{"uint16"}, or @qcode{"single"} for grayscale and |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
45 ## color, and @qcode{"logical"} for black-and-white. Note that indexed images |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
46 ## always return the indexes for a colormap, independent of whether @var{map} |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
47 ## is a requested output. To obtain the actual RGB image, use @code{ind2rgb}. |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
48 ## When more than one indexed image is being read, @var{map} is obtained from |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
49 ## the first. In some rare cases this may be incorrect and @code{imfinfo} can |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
50 ## be used to obtain the colormap of each image. |
17350 | 51 ## |
31211
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
52 ## For TIFF images, the transaprency channel is appended to the rest of the |
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
53 ## channels in @var{img}, and @var{alpha} is always empty for matlab |
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
54 ## compatibility. To differentiate between RGBA and CMYK images, check |
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
55 ## @code{ColorType} or @code{PhotometricInterpretation} fields in the output |
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
56 ## of @code{imfinfo}. |
edbd725ee76c
imwrite: fixed tests to reflect alpha channel behavior for Tiff images
magedrifaat <magedrifaat@gmail.com>
parents:
30564
diff
changeset
|
57 ## |
16962
fb940d48c6f7
doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents:
16944
diff
changeset
|
58 ## See the Octave manual for more information in representing images. |
28733
9342688e86b4
Updated property references for text and graphics functions (bug #50247)
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
27985
diff
changeset
|
59 ## (@pxref{Representing Images}) |
16962
fb940d48c6f7
doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents:
16944
diff
changeset
|
60 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
61 ## Some file formats, such as TIFF and GIF, are able to store multiple images |
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
62 ## in a single file. @var{idx} can be a scalar or vector specifying the |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
63 ## index of the images to read. By default, Octave will read only the first |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
64 ## page. |
8148 | 65 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
66 ## Depending on the file format, it is possible to configure the reading of |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
67 ## images with @var{parameter}, @var{value} pairs. The following options are |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
68 ## supported: |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
69 ## |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
70 ## @table @asis |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
71 ## @item @qcode{"Frames"} or @qcode{"Index"} |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
72 ## This is an alternative method to specify @var{idx}. When specifying it |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
73 ## in this way, its value can also be the string @qcode{"all"}. |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
74 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
75 ## @item @qcode{"Info"} |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
76 ## This option exists for @sc{matlab} compatibility, but has no effect. For |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
77 ## maximum performance when reading multiple images from a single file, use |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
78 ## the @qcode{"Index"} option. |
17118
c97a26408ee0
Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents:
17086
diff
changeset
|
79 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
80 ## @item @qcode{"PixelRegion"} |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
81 ## Controls the image region that is read. The value must be a cell array with |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
82 ## two arrays of 3 elements @code{@{[@var{rows}], [@var{cols}]@}}. The |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
83 ## elements in the array are the start, increment, and end pixel to be read. |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
84 ## If the increment value is omitted it defaults to 1. For example, the |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
85 ## following are all equivalent: |
18615
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
86 ## |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
87 ## @example |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
88 ## @group |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
89 ## imread (filename, "PixelRegion", @{[200 600], [300 700]@}); |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
90 ## imread (filename, "PixelRegion", @{[200 1 600], [300 1 700]@}); |
18615
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
91 ## imread (filename)(200:600, 300:700); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
92 ## @end group |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
93 ## @end example |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
94 ## |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
95 ## @end table |
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
96 ## |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
97 ## @seealso{imwrite, imfinfo, imformats} |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
98 ## @end deftypefn |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
99 |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
100 function [img, varargout] = imread (filename, varargin) |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
101 |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
102 if (nargin < 1) |
7931
de26beacb20f
imread.m: simplify; loadimage.m: deprecate
John W. Eaton <jwe@octave.org>
parents:
7925
diff
changeset
|
103 print_usage (); |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
104 elseif (! ischar (filename)) |
11472
1740012184f9
Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
105 error ("imread: FILENAME must be a string"); |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
106 endif |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
107 |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
108 [img, varargout{1:nargout-1}] = ... |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
109 imageIO ("imread", @__imread__, "read", filename, varargin{:}); |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
110 |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
111 endfunction |
9382
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
112 |
20991
3ec8332e0e01
maint: Use two newlines between endfunction and start of BIST tests.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
113 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
114 %!testif HAVE_MAGICK |
9382
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
115 %! vpng = [ ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
116 %! 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
117 %! 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
118 %! 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
119 %! 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
120 %! 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
121 %! 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
122 %! 97, 5, 0, 0, 0, 32, 99, 72, 82, 77, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
123 %! 0, 0, 122, 38, 0, 0, 128, 132, 0, 0, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
124 %! 250, 0, 0, 0, 128, 232, 0, 0, 117, 48, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
125 %! 0, 0, 234, 96, 0, 0, 58, 152, 0, 0, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
126 %! 23, 112, 156, 186, 81, 60, 0, 0, 0, 25, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
127 %! 73, 68, 65, 84, 24, 87, 99, 96, 96, 96, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
128 %! 248, 255, 255, 63, 144, 4, 81, 111, 101, 84, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
129 %! 16, 28, 160, 16, 0, 197, 214, 13, 34, 74, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
130 %! 117, 213, 17, 0, 0, 0, 0, 73, 69, 78, ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
131 %! 68, 174, 66, 96, 130]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18615
diff
changeset
|
132 %! filename = [tempname() ".png"]; |
16967
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
133 %! unwind_protect |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
134 %! fid = fopen (filename, "wb"); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
135 %! fwrite (fid, vpng); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
136 %! fclose (fid); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
137 %! A = imread (filename); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
138 %! unwind_protect_cleanup |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
139 %! unlink (filename); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
140 %! end_unwind_protect |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
141 %! assert (A(:,:,1), uint8 ([0, 255, 0; 255, 237, 255; 0, 255, 0])); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
142 %! assert (A(:,:,2), uint8 ([0, 255, 0; 255, 28, 255; 0, 255, 0])); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
143 %! assert (A(:,:,3), uint8 ([0, 255, 0; 255, 36, 255; 0, 255, 0])); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
144 |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
145 %!function [r, cmap, a] = write_and_read (w, f_ext, varargin) |
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
146 %! filename = [tempname() "." f_ext]; |
18615
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
147 %! unwind_protect |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
148 %! imwrite (w, filename); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
149 %! [r, cmap, a] = imread (filename, varargin{:}); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
150 %! unwind_protect_cleanup |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
151 %! unlink (filename); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
152 %! end_unwind_protect |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
153 %!endfunction |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
154 |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
155 ## test PixelRegion option |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
156 %!testif HAVE_MAGICK |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
157 %! w = randi (255, 100, 100, "uint8"); |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
158 %! [r, cmap, a] = write_and_read (w, "tif", "PixelRegion", {[50 70] [20 40]}); |
21580
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
159 %! assert (r, w(50:70, 20:40)); |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
160 %! [r, cmap, a] = write_and_read (w, "tif", "PixelRegion", {[50 2 70] [20 3 40]}); |
21580
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
161 %! assert (r, w(50:2:70, 20:3:40)); |
18615
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
162 |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
163 ## If a file does not exist, it's the job of imread to check the file |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
164 ## exists before sending it over to __imread__ or whatever function |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
165 ## is defined in imformats to handle that specific format. This is the |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
166 ## same in imfinfo. So in this test we replace one format in imformats |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
167 ## with something that will not give an error if the file is missing |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
168 ## and make sure we do get an error. |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
169 %!testif HAVE_MAGICK |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
170 %! fmt = fmt_ori = imformats ("jpg"); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
171 %! fmt.read = @true; |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
172 %! error_thrown = false; |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
173 %! imformats ("update", "jpg", fmt); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
174 %! unwind_protect |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
175 %! try |
22558
1751d490dc2f
test: Change tests w/imread to use names without spaces (bug #49219).
Rik <rik@octave.org>
parents:
22489
diff
changeset
|
176 %! imread ("I_sure_hope_this_file_does_not_exist.jpg"); |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
177 %! catch |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
178 %! error_thrown = true; |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
179 %! end_try_catch |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
180 %! unwind_protect_cleanup |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
181 %! imformats ("update", "jpg", fmt_ori); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
182 %! end_unwind_protect |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
183 %! assert (error_thrown, true); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
184 |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
185 ## make one of the formats read, return what it received as input to |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
186 ## confirm that the input parsing is working correctly |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
187 %!testif HAVE_MAGICK |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18615
diff
changeset
|
188 %! fname = [tempname() ".jpg"]; |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
189 %! def_fmt = imformats (); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
190 %! fid = fopen (fname, "w"); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
191 %! unwind_protect |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
192 %! fmt = imformats ("jpg"); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
193 %! fmt.read = @(varargin) varargin; |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
194 %! imformats ("update", "jpg", fmt); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
195 %! assert (imread (fname), {fname}); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
196 %! assert (imread (fname, "jpg"), {fname}); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
197 %! assert (imread (fname(1:end-4), "jpg"), {fname}); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
198 %! extra_inputs = {"some", 89, i, {6 7 8}}; |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
199 %! assert (imread (fname, extra_inputs{:}), {fname, extra_inputs{:}}); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
200 %! assert (imread (fname, "jpg", extra_inputs{:}), {fname, extra_inputs{:}}); |
30330
01de0045b2e3
maint: Shorten some long lines to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
201 %! assert (imread (fname(1:end-4), "jpg", extra_inputs{:}), |
01de0045b2e3
maint: Shorten some long lines to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
202 %! {fname, extra_inputs{:}}); |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
203 %! unwind_protect_cleanup |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
204 %! fclose (fid); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
205 %! unlink (fname); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
206 %! imformats (def_fmt); |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
207 %! end_unwind_protect |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
208 |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
209 ## Test for bug #41584 (some GM coders report saturated channels as binary) |
22489
93ea313301f9
test: Add bug ids (<#####>) to BIST tests.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
210 %!testif HAVE_MAGICK <41584> |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
211 %! im = zeros ([16 16 3], "uint8"); |
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
212 %! im(:,:,1) = 255; |
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
213 %! im(:,:,3) = repmat (0:16:255, [16 1]); |
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
214 %! [r, cmap, a] = write_and_read (im, "png"); |
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
215 %! assert (class (r), "uint8"); |
21580
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
216 %! assert (isempty (cmap)); |
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
217 %! assert (isempty (a)); |