Matlab — после сглаживания изображение RGB не может делиться на RGB

Я новичок в Матлабе..

У меня есть изображение размером 512x512x3 uint8. И я использую функцию «дизеринга» следующим образом:

[Myimagedither, Myimagedithermap] = rgb2ind(img, 16, 'dither'); 
imwrite(Myimagedither,Myimagedithermap,'step_4_RGB_D_U_16.tiff');

после этого я использую imread для чтения изображения следующим образом:

new_img = imread('step_4_RGB_D_U_16.tiff');

но после этого размер изменится только на 512x512 unit8. Мне нужно разделить это изображение на RGB. Кто-нибудь может помочь мне решить эту проблему?


person stranger    schedule 01.08.2014    source источник


Ответы (1)


Карту нужно читать отдельно. Так:

[new_img new_img_map] = imread('step_4_RGB_D_U_16.tiff');

Затем преобразуйте изображение в rgb с помощью ind2rgb() и разделите цветовые каналы на 3 отдельный образ. Так:

new_img_RGB = ind2rgb(new_img,new_img_map);
g1_16 = new_img_RGB(:,:,1);
g2_16 = new_img_RGB(:,:,2);
g3_16 = new_img_RGB(:,:,3);
person Ghaul    schedule 01.08.2014
comment
спасибо за быстрый ответ, я вижу .. но после этого мне нужно разделить его на RGB, например g1_16 = new_img(:,:,1); g2_16 = новое_изображение(:,:,2); g3_16 = новое_img(:,:,3); , а как насчет этой карты? - person stranger; 01.08.2014
comment
@stranger Нет проблем :D - person Ghaul; 01.08.2014