Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab中保存/存储图像?_Matlab_Image Processing - Fatal编程技术网

如何在matlab中保存/存储图像?

如何在matlab中保存/存储图像?,matlab,image-processing,Matlab,Image Processing,参考mathworks“SimpleColorDetector”中的示例 有人能告诉我如何保存图像“redObjectsMask”吗 我试着用imwrite(redObjectsMask,'test.jpg')保存它 但它被保存为黑色图像。 但是在imshow上(redObjectsMask,[]) 它显示了正确的图像 以下是代码示例: redMask = (redBand >= redThresholdLow) & (redBand <= redThresholdHigh)

参考mathworks“SimpleColorDetector”中的示例

有人能告诉我如何保存图像“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

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