Mercurial > octave
annotate scripts/image/imread.m @ 23219:3ac9f9ecfae5 stable
maint: Update copyright dates.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 22 Feb 2017 12:39:29 -0500 |
parents | e9a0469dedd9 |
children | 092078913d54 |
rev | line source |
---|---|
23219
3ac9f9ecfae5
maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents:
23083
diff
changeset
|
1 ## Copyright (C) 2013-2017 Carnë Draug |
22323
bac0d6f07a3e
maint: Update copyright notices for 2016.
John W. Eaton <jwe@octave.org>
parents:
21742
diff
changeset
|
2 ## Copyright (C) 2008-2016 Thomas L. Scofield |
16768 | 3 ## Copyright (C) 2008 Kristian Rumberg |
4 ## Copyright (C) 2006 Thomas Weber | |
5 ## Copyright (C) 2005 Stefan van der Walt | |
8920 | 6 ## Copyright (C) 2002 Andy Adler |
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 ## |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
10 ## Octave is free software; you can redistribute it and/or modify it |
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 |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
12 ## the Free Software Foundation; either version 3 of the License, or (at |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
13 ## your option) any later version. |
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 |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
18 ## General Public License for more details. |
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 |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
22 ## <http://www.gnu.org/licenses/>. |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
23 |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
24 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20338
diff
changeset
|
25 ## @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
|
26 ## @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
|
27 ## @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
|
28 ## @deftypefnx {} {[@dots{}] =} imread (@dots{}, @var{idx}) |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
29 ## @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
|
30 ## 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
|
31 ## |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
32 ## 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
|
33 ## 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
|
34 ## 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
|
35 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
36 ## 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
|
37 ## 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
|
38 ## 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
|
39 ## have an additional 4th dimension. |
17350 | 40 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
41 ## 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
|
42 ## @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
|
43 ## 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
|
44 ## 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
|
45 ## 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
|
46 ## 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
|
47 ## 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
|
48 ## be used to obtain the colormap of each image. |
17350 | 49 ## |
16962
fb940d48c6f7
doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents:
16944
diff
changeset
|
50 ## See the Octave manual for more information in representing images. |
fb940d48c6f7
doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents:
16944
diff
changeset
|
51 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
52 ## 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
|
53 ## 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
|
54 ## 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
|
55 ## page. |
8148 | 56 ## |
20158
7503499a252b
doc: Update docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
57 ## 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
|
58 ## 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
|
59 ## supported: |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
60 ## |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
61 ## @table @asis |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
62 ## @item @qcode{"Frames"} or @qcode{"Index"} |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
63 ## 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
|
64 ## 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
|
65 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
66 ## @item @qcode{"Info"} |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
67 ## 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
|
68 ## 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
|
69 ## the @qcode{"Index"} option. |
17118
c97a26408ee0
Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents:
17086
diff
changeset
|
70 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17171
diff
changeset
|
71 ## @item @qcode{"PixelRegion"} |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
72 ## 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
|
73 ## 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
|
74 ## 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
|
75 ## 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
|
76 ## 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
|
77 ## |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
78 ## @example |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
79 ## @group |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
80 ## imread (filename, "PixelRegion", @{[200 600], [300 700]@}); |
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
81 ## 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
|
82 ## 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
|
83 ## @end group |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
84 ## @end example |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
85 ## |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
86 ## @end table |
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
87 ## |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
88 ## @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
|
89 ## @end deftypefn |
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
90 |
16984
997efb8d0b19
imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents:
16967
diff
changeset
|
91 ## Author: Carnë Draug <carandraug@octave.org> |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
92 ## Author: Thomas L. Scofield <scofield@calvin.edu> |
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
93 ## Author: Kristian Rumberg <kristianrumberg@gmail.com> |
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
94 ## Author: Thomas Weber <thomas.weber.mail@gmail.com> |
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
95 ## Author: Stefan van der Walt <stefan@sun.ac.za> |
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
96 ## Author: Andy Adler |
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
97 |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
98 function [img, varargout] = imread (filename, varargin) |
21742
c86cacc3aaf4
imread: Clean up function and its private implementation.
Rik <rik@octave.org>
parents:
21580
diff
changeset
|
99 |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
100 if (nargin < 1) |
7931
de26beacb20f
imread.m: simplify; loadimage.m: deprecate
John W. Eaton <jwe@octave.org>
parents:
7925
diff
changeset
|
101 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
|
102 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
|
103 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
|
104 endif |
16944
1b3b3ee88284
Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents:
16913
diff
changeset
|
105 |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
106 [img, varargout{1:nargout-1}] = ... |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
107 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
|
108 |
7925
9316b59903c9
Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff
changeset
|
109 endfunction |
9382
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
110 |
20991
3ec8332e0e01
maint: Use two newlines between endfunction and start of BIST tests.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
111 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
112 %!testif HAVE_MAGICK |
9382
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
113 %! vpng = [ ... |
ab563d2adc10
image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents:
9268
diff
changeset
|
114 %! 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
|
115 %! 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
|
116 %! 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
|
117 %! 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
|
118 %! 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
|
119 %! 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
|
120 %! 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
|
121 %! 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
|
122 %! 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
|
123 %! 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
|
124 %! 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
|
125 %! 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
|
126 %! 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
|
127 %! 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
|
128 %! 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
|
129 %! 68, 174, 66, 96, 130]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18615
diff
changeset
|
130 %! filename = [tempname() ".png"]; |
16967
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
131 %! unwind_protect |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
132 %! fid = fopen (filename, "wb"); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
133 %! fwrite (fid, vpng); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
134 %! fclose (fid); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
135 %! A = imread (filename); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
136 %! unwind_protect_cleanup |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
137 %! unlink (filename); |
52c1b832d98e
imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents:
16962
diff
changeset
|
138 %! end_unwind_protect |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
139 %! 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
|
140 %! 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
|
141 %! 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
|
142 |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
143 %!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
|
144 %! 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
|
145 %! unwind_protect |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
146 %! imwrite (w, filename); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
147 %! [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
|
148 %! unwind_protect_cleanup |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
149 %! unlink (filename); |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
150 %! end_unwind_protect |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
151 %!endfunction |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
152 |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
153 ## test PixelRegion option |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
154 %!testif HAVE_MAGICK |
1b6f5917ae4b
imread.m: expand documentation and add tests for the PixelRegion option.
Carnë Draug <carandraug@octave.org>
parents:
18298
diff
changeset
|
155 %! 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
|
156 %! [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
|
157 %! 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
|
158 %! [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
|
159 %! 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
|
160 |
18298
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
161 ## 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
|
162 ## 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
|
163 ## 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
|
164 ## 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
|
165 ## 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
|
166 ## 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
|
167 %!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
|
168 %! 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
|
169 %! 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
|
170 %! 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
|
171 %! 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
|
172 %! 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
|
173 %! try |
22558
1751d490dc2f
test: Change tests w/imread to use names without spaces (bug #49219).
Rik <rik@octave.org>
parents:
22489
diff
changeset
|
174 %! 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
|
175 %! catch |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
176 %! 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
|
177 %! 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
|
178 %! 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
|
179 %! 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
|
180 %! 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
|
181 %! 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
|
182 |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
183 ## make one of the formats read, return what it received as input to |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
184 ## confirm that the input parsing is working correcly |
15db54c4a572
Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents:
17744
diff
changeset
|
185 %!testif HAVE_MAGICK |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18615
diff
changeset
|
186 %! 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
|
187 %! 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
|
188 %! 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
|
189 %! 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
|
190 %! 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
|
191 %! 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
|
192 %! 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
|
193 %! 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
|
194 %! 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
|
195 %! 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
|
196 %! 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
|
197 %! 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
|
198 %! assert (imread (fname, "jpg", 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
|
199 %! assert (imread (fname(1:end-4), "jpg", 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 %! 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
|
201 %! 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
|
202 %! 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
|
203 %! 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
|
204 %! 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
|
205 |
20338
a7770c66cb3d
Saturated red channel on RGB image, makes imread() return logical (bug #41584)
Carnë Draug <carandraug@octave.org>
parents:
20158
diff
changeset
|
206 ## 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
|
207 %!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
|
208 %! 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
|
209 %! 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
|
210 %! 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
|
211 %! [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
|
212 %! assert (class (r), "uint8"); |
21580
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
213 %! assert (isempty (cmap)); |
ecce63c99c3f
maint: Add semicolons to terminate code in %! blocks.
Rik <rik@octave.org>
parents:
20991
diff
changeset
|
214 %! assert (isempty (a)); |