poster
2019-12-10, 20:48
当我写这些命令时
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(:)));
更多&回答... (https://stackoverflow.com/questions/4495079)
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(:)));
更多&回答... (https://stackoverflow.com/questions/4495079)