Der vierte Kanal Ihres Bildes ist der Alphakanal. Es enthält den Transparenzwert jedes Pixels. In diesem Beispiel werden alle Werte im vierten Kanal sind identisch mit 255:
sum(sum(I(:,:,4)~=255))
ans =
0
Die allgemeine Lösung in diesem speziellen Fall ist der letzte Kanal zu ignorieren (da es Informationen überhaupt nicht hinzugefügt werden), und die Verwendung rgb2gray Funktion:
I = imread('<image path>');
bw = rgb2gray(I(:,:,1:3));
jedoch Sie in Ihrem Fall haben keine rgb2gray Funktion (wahrscheinlich, weil Sie Matlab nicht Image Processing Toolbox). Die allgemeine Lösung für diesen Fall besteht darin, eine Funktion zu implementieren, die rgb-Bilder in bw-Bilder umwandelt.
Zum Glück, in diesem speziellen Beispiel sind die drei Kanäle völlig identisch:
isequal(I(:,:,1),I(:,:,2))
ans =
1
isequal(I(:,:,1),I(:,:,3))
ans =
1
Daher können Sie einfach schreiben:
bw = I(:,:,1);
Beachten Sie, dass es nur für diesen speziellen Fall funktionieren wird.
Siehe ['imread'] (http://nl.mathworks.com/help/matlab/ref/im_read.html). Sie können ein Bild als Matrix importieren. Dann können Sie Ihr eigenes Skript schreiben, das jede Farbe in Schwarz umwandelt. Weitere Informationen dazu, wie die Matrix strukturiert ist, finden Sie in der Hilfefunktion. – Karlo
Ich habe imread gemacht, imshow es zeigt mir Fehler, ich verstehe nicht die Bildinformationen, die 4 Kanäle hat. –