我使用以下命令显示图像
imshow(img,[]);
当我使用以下命令保存图像时,它将保存为空白页
imsave;
在这种情况下如何保存图像任何命令都可以
答案 0 :(得分:1)
将图像数据转换为实际图像,然后重试:
h = image(img); %Convert to object
imsave(h); %Save image object
请注意,如果关闭image()
生成的图形窗口,则会删除该对象,并且句柄将指向任何内容。虽然这可能超出了你的要求。
希望这项调整能解决您的问题
答案 1 :(得分:1)
您可能遇到矩阵类型和范围问题。如果img
类型为double
,则需要在0和1之间进行缩放。
常见问题是在uint8
中加载图像(在0到255之间缩放),转换为double
以便对其进行一些处理,而不进行缩放,然后尝试保存出。执行此操作时,MATLAB会尝试转换回uint8
,并剪切[0 1]范围之外的图像中的任何值。在许多图像上,这意味着该文件全部为白色。
要解决此问题,请在转换图片时使用im2double
和im2uint8
等功能,而不仅仅是double
或uint8
。
尝试在命令行之间区别:
img = imread('pout.tif');
img = double(img);
imshow(img,[]);
imsave;
和
img = imread('pout.tif');
img = im2double(img);
imshow(img,[]);
imsave;
答案 2 :(得分:1)
首先使用
将图像转换为rgbimg1=label2rgb(img);
然后再次使用
将图像转换为灰色图像img2=rgb2gray(img1);
然后你可以使用imshow来显示图像并使用imsave保存它
imshow(img2);
imsave();