查看单个帖子
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 Matlab RGB值困境

当我写这些命令时

out = ones(size(ben)) imshow(out) 输出是白色图片,但我希望几乎是深色图片,因为rgb值为1,1,1。当我给255,255,255时,它也给出白色图片。这不是困境吗?



回答:

试试看out = ones(size(ben), 'uint8');

默认情况下, ones()创建一个双精度数组。当imshow()获得双精度数组时,它将假定像素值介于0和1之间,并将白色分配给大于1的任何值。但是,如果将uint8数组传递给imshow() ,它将假定该范围介于0到255之间。

您也可以尝试使用imagesc();而不是imshow() ,但是您可能需要在病房之后对colormap gray以获得灰度图像。

另一种选择是在显示之前重新缩放图像:

imshow(out / max(out(:)));

更多&回答...
poster 当前离线   回复时引用此帖