2016-05-23 2354 views
-2

请检查以下指向图像(tif)的链接。它有4个频道。Matlab - 读取并显示tif图像

http://amarfree.com/Kannada_1_001.tif

请帮我在读取图像,并将其转换用matlab /黑白图像。

请提供图像通道信息。

+0

请参阅['imread'](http://nl.mathworks.com/help/matlab/ref/imread.html)。您可以将图像作为矩阵导入。然后,您可以编写自己的脚本,将任何颜色转换为黑色。查看关于如何在帮助功能中构建矩阵的更多信息。 – Karlo

+1

我做了imread,imshow显示我错误,我不了解图像信息,它有4个通道。 –

回答

2

图像的第四个通道是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); 

注意,它只会针对这种特殊情况下的工作

+0

你是如何找到的,它是一种RGBA格式。 –

+0

bw = rgb2gray(img(:,:,1:3)); imshow(bw)未定义的函数'rgb2gray'用于输入'uint8'类型的参数。 比例误差(第3行) bw = rgb2gray(img(:,:,1:3)); –

+1

好吧,我相应地更新了我的答案 – drorco