我在matlab中有一个关于imshow的简短问题。
imshow(pic)
和imshow(pic,[])
之间有什么区别?
我应该何时使用imshow(pic,[])
?
答案 0 :(得分:2)
来自Mathwork的网站(请参阅DisplayRange
部分中的here):
显示灰度图像的范围,指定为双元素矢量[LOW HIGH]。 imshow将值(低于任何低于低的值)显示为黑色,将值高(以及任何大于高的值)显示为白色。中间的值使用默认的灰度级显示为灰度的中间色调。如果指定一个空矩阵([]),imshow使用[min(I(:))max(I(:))];也就是说,将I中的最小值用作黑色,将最大值用作白色。
假设您有一个最低值为230且最高值为255的图像,如果您执行imshow(img)
,则会假设所显示图像的最低值为0
且最大值为255
是imshow(img,[])
,所以你最终得到(几乎)白色图像。另一方面,如果执行imshow(img,[])
,则告诉MATLAB根据图像的最小值和最大值调整显示图像的最小值和最大值。因此,在上面的示例中,调用imshow(img,[230 255])
等同于调用{{1}}。这将使您能够看到灰色的中间色调。