2014-02-18 2 views
6

В Matlab, когда я используюобработка изображений - TIFF изображений в Matlab в оттенках серого

imshow('trees.tif') 

он отображает RGB изображение, но когда я использую эти две функции

I=imread('trees.tif') 
imshow(I) 

он отображает шкалу серого изображение, и это все еще то же самое изображение.

Это происходит только с TIFF изображений, потому что, когда я использую его для изображения JPEG так:

I=imread('flower.jpg') 
imshow(I) 

он отображает RGB изображения, и это то же самое, как imshow('flower.jpg').

Может ли кто-нибудь объяснить, почему использование imread/imshow на изображениях TIFF отображает их в сером цвете?

+0

Похоже, 'trees.tif'uses индексированной цветовой карты (попробуйте' >> ImageInfo ('trees.tif') ' и посмотрите на поле 'ColorType'), поэтому' imread', по-видимому, возвращает только индексы. Я не уверен, как получить из него цветовой код, чтобы вы могли преобразовать его в RGB или whathaveyou. –

+0

Вы правы, поэтому, если это индексное изображение, я должен получить colormap, чтобы преобразовать его в RGB, теперь я получаю его, есть ли у вас какая-нибудь книга, рекомендуемая для новичка? СПАСИБО – user3089045

ответ

9

Загрузите цветовую карту тоже:

[I,cmap] = imread('trees.tif'); 

Показать его с картой:

imshow(I,cmap) 

преобразовать его в RGB:

Irgb = ind2rgb(I,cmap) 

Таким образом, вы можете просматривать и манипулировать без цветная картинка:

imshow(Irgb) 
imagesc(Irgb) 
% etc. 

глаза конфета:

enter image description here enter image description here enter image description here

+0

Спасибо, это сработало отлично! – user3089045

Смежные вопросы