2009-11-22 166 views
10

我正試圖在計算機視覺中實現一種算法,並且我想在一組圖片上嘗試一下。這些照片都是彩色的,但我不想處理這些。我想將它們轉換爲足夠用於測試算法的灰度。如何在MATLAB中將彩色圖像轉換爲灰度圖像?

如何將彩色圖像轉換爲灰度圖像?

我與閱讀它:

x = imread('bla.jpg'); 

有沒有我可以添加到imread讀它爲灰度任何參數?在閱讀後有什麼辦法將x更改爲灰度

回答

24

使用rgb2gray去除色調和飽和度(即轉換爲灰度)。 Documentation

+2

@Donnie:我更新了最新文檔的鏈接。 – gnovice 2009-11-22 19:25:55

+0

@Donnie:我藉此更新了最新的文檔。 – leMoisela 2013-04-09 18:53:34

+2

他們確實需要停止移動文檔。 :) – Donnie 2013-04-21 02:12:53

8
x = imread('bla.jpg'); 
k = rgb2gray(x); 
figure(1),imshow(k); 
+0

>> k = rgb2gray(im); 未定義的函數'rgb2gray'用於輸入'uint8'類型的參數。 – ntg 2013-12-11 19:08:23

1

您可以使用此代碼:

im=imread('your image'); 
k=rgb2gray(im); 
imshow(k); 

使用MATLAB的

0

I=imread('yourimage.jpg'); 
p=rgb2gray(I) 
+0

我知道答案很簡單,但在這裏不鼓勵使用代碼解答。請添加一點上下文,解釋'rgb2gray'的作用,並可能鏈接到文檔。 – horchler 2015-10-14 17:56:01

0

使用imread()rgb2gray()˚F獲取灰度圖像的聯合。

例子:

I = imread('input.jpg'); 
J = rgb2gray(I); 
figure, imshow(I), figure, imshow(J); 

如果你有一個彩色地圖圖像,你必須做如下圖所示:

[X,map] = imread('input.tif'); 
gm = rgb2gray(map); 
imshow(X,gm); 

rgb2gray算法爲自己的實現是:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B) 
相關問題