【发布时间】:2010-12-21 13:25:06
【问题描述】:
当我写这些命令时
out = ones(size(ben))
imshow(out)
输出是白色图片,但我希望图片几乎是黑色,因为 rgb 值为 1,1,1。当我给出 255,255,255 时,它也会给出一张白色的图片。这不是进退两难吗?
【问题讨论】:
标签: matlab
当我写这些命令时
out = ones(size(ben))
imshow(out)
输出是白色图片,但我希望图片几乎是黑色,因为 rgb 值为 1,1,1。当我给出 255,255,255 时,它也会给出一张白色的图片。这不是进退两难吗?
【问题讨论】:
标签: matlab
试试out = ones(size(ben), 'uint8');
ones() 默认创建一个双精度数组。当imshow() 获得一个双精度数组时,它假定像素值介于 0 和 1 之间,并将白色分配给大于 1 的任何值。但是,如果将 uint8 数组传递给 imshow(),它将假定范围在 0 到 255 之间。
您也可以尝试使用imagesc(); 代替imshow(),但您可能需要在病房后使用colormap gray 才能获得灰度图像。
另一种选择是在显示之前重新缩放图像:
imshow(out / max(out(:)));
【讨论】:
imshow(out,[])