2016-12-09 140 views
1

我有以下代码:为什么使用imwrite保存图像变黑?

grayImage=imread('coins.png'); 
edgeImageD = double(grayImage) - double(imdilate(grayImage,SE_3)); 
OutputFileName = ['./output_images/' 'coins _edge.png']; 

    imwrite((edgeImageD),OutputFileName); 
figure,imshow(edgeImageD, []),title('dilation'); 

输出图像具有边缘,但是当我保存使用imwrite它()它得到黑色。请告诉我我做错了什么。

回答

2

如果您要保存double图像,则需要将所有值归一化为0到1之间(可能使用的是mat2gray)。

imwrite(mat2gray(edgeImageD), OutputFileName) 

如果A是数据类型双链或单的灰度或RGB彩色图像,然后imwrite假定动态范围为[0,1],并将其写入到之前自动缩放由255数据文件为8位值。如果A中的数据是单个数据,则在写入GIF或TIFF文件之前将A转换为double。

+0

感谢它的工作 – cranberry

相关问题