Mercurial > octave-libtiff
annotate scripts/image/private/__tiff_imread__.m @ 31197:1604c8812b67
Tiff: added numberOfDirectories method.
author | magedrifaat <magedrifaat@gmail.com> |
---|---|
date | Thu, 01 Sep 2022 01:56:20 +0200 |
parents | |
children | e5e8cb049b4b |
rev | line source |
---|---|
31197
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
1 function [A, cmap, alpha] = __tiff_imread__ (filename, varargin) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
2 img = Tiff (filename); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
3 dir_count = img.numberOfDirectories (); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
4 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
5 ## A lot of the input sanitising logic here is copied from |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
6 ## scripts/image/__imread__.m and adapted to the needs of the Tiff |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
7 ## interface |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
8 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
9 pages = [1]; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
10 offset = 1; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
11 if (nargin > 1 && ! ischar (varargin{1})) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
12 if (! is_valid_index_option (varargin {1})) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
13 error ("imread: IDX must be a numeric vector"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
14 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
15 pages = varargin{1}; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
16 offset = 2; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
17 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
18 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
19 if (rem (numel (varargin) - offset + 1, 2) != 0) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
20 error ("imread: PARAM/VALUE arguments must occur in pairs"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
21 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
22 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
23 ## Check for Index/Frames argument |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
24 idx = strcmpi ("index", varargin) | strcmpi ("frames", varargin); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
25 if (any (idx)) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
26 if (sum (idx) > 1) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
27 error ("imread: Index or Frames may only be specified once"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
28 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
29 val = varargin{circshift (idx, 1)}; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
30 if (! is_valid_index_option (val) && ! strcmpi (val, "all")) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
31 error ("imread: %s must be a vector or the string 'all'", varargin{idx}); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
32 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
33 if (strcmpi (val, "all")) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
34 pages = 1:dir_count; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
35 else |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
36 pages = val; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
37 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
38 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
39 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
40 if (any ((pages < 1) | (pages > dir_count))) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
41 error ("imread: index/frames specified are outside the number of images"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
42 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
43 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
44 img.setDirectory (pages(1)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
45 info = get_image_info (img); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
46 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
47 ## Verify that all images have the same dimensions, number of channels, |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
48 ## bit-depth, and data type |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
49 for page_idx = 2:numel (pages) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
50 img.setDirectory (pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
51 dir_info = get_image_info (img); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
52 if (info.width != dir_info.width || info.height != dir_info.height) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
53 error ("imread: all frames must have the same size but frame %d is different", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
54 pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
55 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
56 if (info.bitdepth != dir_info.bitdepth) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
57 error ("imread: all frames must have the same bit depth but frame %d is different", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
58 pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
59 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
60 if (info.nchannels != dir_info.nchannels) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
61 error ("imread: all frames must have the same number of channels but frame %d is different", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
62 pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
63 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
64 if (info.datatype != dir_info.datatype) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
65 error ("imread: all frames must have the same data type but frame %d is different", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
66 pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
67 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
68 if (info.photometric != dir_info.photometric) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
69 error ("imread: all frames must have the same photometric interpretation but frame %d is different", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
70 pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
71 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
72 endfor |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
73 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
74 region = {1:info.height, 1:info.width}; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
75 for idx = offset:2:(numel (varargin) - offset + 1) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
76 switch (tolower (varargin{idx})) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
77 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
78 case {"frames", "index"} |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
79 ## Do nothing. This option was already processed before the loop. |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
80 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
81 case "pixelregion" |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
82 region = varargin{idx+1}; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
83 if (! iscell (region) || numel (region) != 2) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
84 error ("imread: %s must be a 2-element cell array", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
85 varargin{idx}); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
86 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
87 for reg_idx = 1:2 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
88 if (numel (region{reg_idx}) == 3) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
89 ## do nothing |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
90 elseif (numel (region{reg_idx}) == 2) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
91 region{reg_idx}(3) = region{reg_idx}(2); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
92 region{reg_idx}(2) = 1; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
93 else |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
94 error ("imread: range for %s must be a 2 or 3 element vector", |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
95 varargin{idx}); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
96 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
97 region{reg_idx} = floor (region{reg_idx}(1)): ... |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
98 floor (region{reg_idx}(2)): ... |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
99 floor (region{reg_idx}(3)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
100 endfor |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
101 if (region{1}(end) > info.height) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
102 error ("imread: end ROWS for PixelRegions option is larger than image height"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
103 elseif (region{2}(end) > info.width) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
104 error ("imread: end COLS for PixelRegions option is larger than image width"); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
105 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
106 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
107 case "info" |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
108 ## We ignore this option. This parameter exists in Matlab to |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
109 ## speed up the reading of multipage TIFF by passing a structure |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
110 ## that contains information about the start on the file of each |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
111 ## page. We can't control it through GraphicsMagic but at least |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
112 ## we allow to load multiple pages with one command. |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
113 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
114 otherwise |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
115 error ("imread: invalid PARAMETER '%s'", varargin{idx}); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
116 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
117 endswitch |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
118 endfor |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
119 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
120 A = []; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
121 cmap = []; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
122 alpha = []; |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
123 for page_idx = 1:numel(pages) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
124 img.setDirectory (pages(page_idx)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
125 ## FIXME: This an ineffecient way to read pixel regions because it |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
126 ## always reads the entire image first. A better way is to figure |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
127 ## out which strips/tiles are needed for the region and read only those. |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
128 data = img.read (); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
129 data = data (region{1}, region{2}, :); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
130 A = cat (4, A, data); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
131 if (info.photometric == Tiff.Photometric.Palette) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
132 cmap = cat (3, cmap, img.getTag (Tiff.TagID.ColorMap)); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
133 endif |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
134 endfor |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
135 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
136 img.close (); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
137 endfunction |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
138 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
139 function bool = is_valid_index_option (arg) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
140 bool = isvector (arg) && isnumeric (arg) && isreal (arg); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
141 endfunction |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
142 |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
143 function info = get_image_info (img) |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
144 info.height = img.getTag (Tiff.TagID.ImageLength); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
145 info.width = img.getTag (Tiff.TagID.ImageWidth); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
146 info.bitdepth = img.getTag (Tiff.TagID.BitsPerSample); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
147 info.nchannels = img.getTag (Tiff.TagID.BitsPerSample); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
148 info.datatype = img.getTag (Tiff.TagID.SampleFormat); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
149 info.photometric = img.getTag (Tiff.TagID.Photometric); |
1604c8812b67
Tiff: added numberOfDirectories method.
magedrifaat <magedrifaat@gmail.com>
parents:
diff
changeset
|
150 endfunction |