2014-01-28 4 views
0

Со ссылкой на пример, в MathWorks «SimpleColorDetector» http://www.mathworks.com/matlabcentral/fileexchange/26420-simplecolordetectionКак сохранить/сохранить изображение в Matlab?

Может кто-то дайте мне знать, как сохранить изображение «redObjectsMask»?

Я пытался сохранить его с imwrite(redObjectsMask,'test.jpg');

но сохраняются в виде черного изображения. Но на imshow(redObjectsMask,[]);

оно показывает правильное изображение.

Вот пример кода:

redMask = (redBand >= redThresholdLow) & (redBand <= redThresholdHigh); 
greenMask = (greenBand >= greenThresholdLow) & (greenBand <= greenThresholdHigh); 
blueMask = (blueBand >= blueThresholdLow) & (blueBand <= blueThresholdHigh); 

redObjectsMask = uint8(redMask & greenMask & blueMask); 
    subplot(3, 3, 4); 
    imshow(redObjectsMask, []); % this shows the image I require to be saved 
    imwrite(redObjectsMask,'test.jpg'); % this saves a blank image 
+2

Можете ли вы опубликовать немного кода и что redObjectsMask выглядит? Насколько мы хотели бы помочь вам, люди не смогут загрузить и запустить функцию, чтобы попытаться угадать проблему. – McMa

ответ

0

С пустыми скобками [] как второй аргумент imshow вы масштаб интенсивность изображения на экране. Вам нужно сделать то же самое для сохранения изображения.

redObjectsMask = double(redObjectsMask); % make sure you work with float type 
redObjectsMask = (redObjectsMask - min(redObjectsMask(:)) ./ (max(redObjectsMask(:)) - min(redObjectsMask(:))); 
imwrite(redObjectsMask, 'test.jpg'); 

Если вы redObjectsMask логического типа, вы можете решить более простым способом:

redObjectsMask = uint8(redObjectsMask) * 255; % white is 255 and not 1 
imwrite(redObjectsMask, 'test.jpg'); 
+0

Отлично! Большое спасибо сэр :) Это был логичный тип. Могу ли я узнать, почему он не сохраняет обычный метод? –

+0

@ Vishal jpg сохраняется с 8 бит на пиксель, логический массив имеет значения 0 и 1, если вы сохраняете пиксель со значением 1, он только немного ярче, чем полностью темный пиксель. «белый» - это пиксель со значением 255 (далеко от 1). – Shai

+0

@Vishal вы также можете рассмотреть возможность сохранения карт и масок в качестве индексированных изображений. используйте '>> doc imwrite' для получения дополнительной информации. – Shai

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