我导入了一张图片。我已将其解析为双精度并对其执行了一些过滤。
当我用imshow
绘制结果时,双重图像太暗。但是,当我使用imshowpair
绘制原始图像和最终图像时,两个图像都会正确显示。
我尝试使用uint8
,im2uint8
,乘以255然后使用这些函数,但获取正确图片的唯一方法是使用imshowpair
。
我该怎么办?
答案 0 :(得分:6)
在显示gulp-webserver
数据时,大多数强度/颜色数据都超出了imshow
接受的动态范围,这听起来像是一个问题。
我也看到您正在使用double
,但im2double
只是将图片转换为双倍,如果图片已经加倍,则不会发生任何事情。这可能是因为您过滤图像的方式。你在做某种边缘检测吗?你得到黑暗图像的原因可能是因为你的大部分强度是负的,或者是在0左右徘徊。im2double
显示imshow
类型的图像假设强度的动态范围是[0,1]。
因此,解决问题的一种方法是:
double
这会将显示移动到范围,因此最小值映射为0,最大值映射为1。
如果您想要更持久的解决方案,请考虑创建一个新的输出变量来为您执行此操作:
imshow(im,[]);
这将执行out = (im - min(im(:))) / (max(im(:)) - min(im(:)));
为您显示数据时所做的相同移动。你现在可以这样做:
imshow