请检查以下指向图像(tif)的链接。它有4个频道。Matlab - 读取并显示tif图像
http://amarfree.com/Kannada_1_001.tif
请帮我在读取图像,并将其转换用matlab /黑白图像。
请提供图像通道信息。
请检查以下指向图像(tif)的链接。它有4个频道。Matlab - 读取并显示tif图像
http://amarfree.com/Kannada_1_001.tif
请帮我在读取图像,并将其转换用matlab /黑白图像。
请提供图像通道信息。
图像的第四个通道是alpha通道。它包含每个像素的透明度值。在这个例子中,在第4个信道的所有的值是相同的,以255:
sum(sum(I(:,:,4)~=255))
ans =
0
在该特定情况下的一般的解决方案是忽略最后一个通道(因为它没有在所有的添加信息),并使用rgb2gray功能:
I = imread('<image path>');
bw = rgb2gray(I(:,:,1:3));
然而,在你的情况你没有rgb2gray功能(可能是因为你没有Matlab的图像处理工具箱)。这种情况的一般解决方案是实现一个将rgb图像转换为bw图像的功能。
幸运的是,在这个特殊的例子,3个通道是完全一致的:
isequal(I(:,:,1),I(:,:,2))
ans =
1
isequal(I(:,:,1),I(:,:,3))
ans =
1
因此,可以简单的写:
bw = I(:,:,1);
注意,它只会针对这种特殊情况下的工作。
你是如何找到的,它是一种RGBA格式。 –
bw = rgb2gray(img(:,:,1:3)); imshow(bw)未定义的函数'rgb2gray'用于输入'uint8'类型的参数。 比例误差(第3行) bw = rgb2gray(img(:,:,1:3)); –
好吧,我相应地更新了我的答案 – drorco
请参阅['imread'](http://nl.mathworks.com/help/matlab/ref/imread.html)。您可以将图像作为矩阵导入。然后,您可以编写自己的脚本,将任何颜色转换为黑色。查看关于如何在帮助功能中构建矩阵的更多信息。 – Karlo
我做了imread,imshow显示我错误,我不了解图像信息,它有4个通道。 –