如何在matlab中保存/存储图像?
参考mathworks“SimpleColorDetector”中的示例 有人能告诉我如何保存图像“redObjectsMask”吗 我试着用如何在matlab中保存/存储图像?,matlab,image-processing,Matlab,Image Processing,参考mathworks“SimpleColorDetector”中的示例 有人能告诉我如何保存图像“redObjectsMask”吗 我试着用imwrite(redObjectsMask,'test.jpg')保存它 但它被保存为黑色图像。 但是在imshow上(redObjectsMask,[]) 它显示了正确的图像 以下是代码示例: redMask = (redBand >= redThresholdLow) & (redBand <= redThresholdHigh)
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
redMask=(redBand>=redThresholdLow)&(redBand=greenThresholdLow)&(greenBand=blueThresholdLow)&(blueBand,带空括号[]
作为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');
你能发布一点你的代码和redObjectsMask是什么样子的吗?尽管我们很想帮助你,但可能人们会下载并运行一个函数来尝试猜测问题。太好了!非常感谢先生:)这是一个逻辑类型。我可以知道为什么不使用通常的方法保存吗?@Vishal jpg以每像素8位的速度保存,逻辑阵列的值为0和1,如果使用值1保存像素,则仅比完全黑暗的像素略亮。“白色”是一个值为255(远离1)的像素。@ Vishal,你可能还想考虑保存地图和掩码作为索引图像。有关详细信息,请使用>文档imwrite
。