2016-05-23 233 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