2009-11-22 7 views
10

Ich versuche, einen Algorithmus in der Computer Vision zu implementieren, und ich möchte es auf einer Reihe von Bildern versuchen. Die Bilder sind alle in Farbe, aber ich will damit nicht umgehen. Ich möchte sie in Graustufen umwandeln, was ausreicht, um den Algorithmus zu testen.Wie kann ich ein Farbbild in MATLAB in Graustufen konvertieren?

Wie kann ich ein Farbbild in Graustufen konvertieren?

lese ich es mit:

x = imread('bla.jpg'); 

Gibt es ein Argument, das ich zu imread hinzufügen kann es als Graustufen zu lesen? Gibt es eine Möglichkeit, ich x in Graustufen nach lesen es zu ändern?

Antwort

24

Verwenden Sie rgb2gray, um den Farbton und die Sättigung zu entfernen (dh in Graustufen zu konvertieren). Documentation

+2

@Donnie: Ich habe den Link zur neusten Dokumentation aktualisiert. – gnovice

+0

@Donnie: Ich habe das Update auf den neuesten Doc abgeordnet. – leMoisela

+2

Sie müssen wirklich aufhören, die Dokumentation zu bewegen. :) – Donnie

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

>> k = rgb2gray (im); Nicht definierte Funktion 'rgb2gray' für Eingabeargumente vom Typ 'uint8'. – ntg

1

Sie diesen Code verwenden können:

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

0

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

Ich weiß, dass die Antwort einfach ist, aber Code-only-Antworten werden hier entmutigt. Bitte fügen Sie einen kleinen Kontext hinzu, erklären Sie, was 'rgb2gray' tut und verlinken Sie vielleicht mit der Dokumentation. – horchler

0

Verwenden imread() und rgb2gray() f Matlab um ein Graustufenbild zu erhalten.

Beispiel:

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

Wenn Sie eine Farbe-Karte Bild haben, müssen Sie wie unten tun:

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

Der rgb2gray Algorithmus für Ihre eigene Implementierung ist:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)