【发布时间】:2021-12-23 09:24:11
【问题描述】:
我将灰度图像转换为二进制图像,如下面的脚本所示:
D = '/folder-path/';
S = dir(fullfile(D,'*.jpg'));
for k = 1:numel(S)
F = fullfile(D,S(k).name);
I = imread(F);
I2 = im2bw(I);
imwrite(I2,F);
end
问题是当我尝试读取任何已转换为二进制并保存到硬盘驱动器的图像时,返回的类型是 uint8!
我认为图像至少会包含两个值,例如 0 和 255,但在一张图像上运行 unique(I) 时,我得到以下信息:
75×1 uint8 column vector
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
35
36
37
38
217
218
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
您认为为什么会发生这种情况?如何将保存的图像读取为二进制而不是 uint8?
谢谢。
【问题讨论】:
-
您正在尝试将其保存为 jpg,我认为这里的问题是 jpg 的压缩,它生成的比例尺接近像素的“区域”..您可以尝试使用“png”(我相信它没有压缩)或只是将图像保存为矩阵文件...
标签: matlab binary type-conversion grayscale