当我写图像时,它显示为黑色

时间:2013-11-13 08:44:07

标签: matlab grayscale

我有一个返回grayscale图像的程序。但是,当我尝试编写图像时,它看起来完全是black。这是为什么?如何编写图像并获得预期结果?

感谢。

3 个答案:

答案 0 :(得分:3)

首先检查数据类型。您可以通过示例 double() uint16()等来转换数据类型。(检查类型转换的帮助)。 下面是一个示例,说明如何将值重新调整为uint16的强度范围,无符号整数,其中可能有~65k的不同值。当然,铸造会导致强度值的精度降低。

new_img(:,:) = uint16((new_img(:,:)./max(max(new_img(:,:),[],1)))*65536);

之后您应该能够将数据写入您的文件。

答案 1 :(得分:1)

确保您的灰度图像属于正确的类。此外,检查生成的图像中的值。如果它们太低,则所有都会显得黑色。如果您可以提供更具体的信息,则可以提供更详细的答案。

答案 2 :(得分:0)

如果您正在处理二进制图像(在转换为灰色之前)并且您要将其转换为灰度级,那么您会突然将像素范围从[0,1]更改为[0,255] 。所以二进制图像中的值“1”是全白的,但灰度图像中的值几乎是黑色。

试试这个:

img = imread('image_name.jpg');
imshow(img*50)

它可以确保您的图像为黑色或只是其像素值不合适。

相关问题