2013-08-21 22 views
6

To pytanie może być naprawdę proste, ale proszę o mnie.Jak poznać typ obrazu matlab

Kiedy używam Imread w Matlab i czytać obraz, skąd mam wiedzieć, czy jego RGB, skali szarości lub pojedynczo programowo? Twoja pomoc jest bardzo cenna. Próbowałem googling, ale nie jestem pewien, czy właściwe słowo lub frazę powinienem wprowadzić, aby szukać dokładnie wat szuka. Z góry dziękuję. Każdy może zawęzić link lub odpowiedni termin, który byłby naprawdę pomocny.

I1 = imread('sample_image.jpg'); 

Skąd mogę wiedzieć, jaki typ I1 ma przed jakąkolwiek konwersją?

+3

należy odczytać następująco: http://blogs.mathworks.com/steve/2007/03/09/what-happen-to-isgray-isind-isbw-and-isrgb / – Amro

Odpowiedz

8

Można użyć imfinfo aby pobrać informacje o pliku obrazu przed załadowaniem go:

info = imfinfo('sample_image.jpg'); 
info.ColorType % e.g. 'grayscale', 'truecolor', 'indexed' 
info.BitDepth % e.g. 8, 16 

Można również spojrzeć na dziale pomocy na imread aby zobaczyć, co klasa wyjście będzie dla różnych typów plików. Problem polega na określeniu różnicy między obrazem w skali szarości a plikiem kolorów indeksowanych - będą one miały ten sam rozmiar i klasę. W tym przypadku trzeba sprawdzić ColorType wcześniej i załadować mapę kolorów w podczas odczytu obrazu:

[I, map] = imread(filename)

Powiązane problemy