gpt4 book ai didi

image - 使用灰度图像用matlab创建RGB图像

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:50 25 4
gpt4 key购买 nike

我有一张灰度图像,我希望将此图像作为 RGB 图像的三个波段。换句话说,新的RGB图像的每个波段将是这个灰度图像

这就是我到目前为止所尝试的:

gray_image=imread('image.pgm');
rgb_image=zeros(size(gray_image,1),size(gray_image,2),3);
rgb_image(:,:,1)=gray_image;
rgb_image(:,:,2)=gray_image;
rgb_image(:,:,3)=gray_image;


>> rgb_image(1,2,1)

ans = 44

>> rgb_image(1,2,2)

ans = 44

>> rgb_image(1,2,3)

ans = 44

你可以看到上面的代码有效,但是当我执行以下命令时:

imwrite(rgb_image,'rgb_image.ppm');

图像是全白的。如何以正确的格式保存图像?

最佳答案

问题原因:

gray_imageuint8 类型,而 rgb_imagedouble 类型,但两者的值都在范围内[0..255]。当 matlab 保存 double 精度图像时,它期望其值在 [0..1] 范围内,所有大于 1 的值都被截断为1 - 最亮的可能值。这就是为什么保存 double rgb_image 会产生全白图像的原因。

更正:

rgb_imge 也使用 uint8 类型:

rgb_image=zeros(size(gray_image,1),size(gray_image,2),3,'uint8');

或者,您可以将 gray_image 转换为 double

gray_image = im2double( gray_image );

关于image - 使用灰度图像用matlab创建RGB图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20348565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com