Matlab中的colormap

4

对于一张色彩地图,如何突出一些较暗特征的亮度?


内置的Matlab色图:Matlab中的内置色图 - Amro
2个回答

3
你可以使用 BRIGHTEN 函数来使整个配色方案变亮,这样就能提亮那些比较暗的元素了:
brighten(0.5);  %# Brightens the current colormap

%# OR...

newMap = brighten(oldMap,0.5);  %# Brighten the colormap in variable oldMap
colormap(newMap);               %# Update the current colormap to newMap

如果您只想提亮部分(即仅有的颜色图谱某些部分),那么您需要先决定哪些特征被归类为“较暗”。;)


1
另一个有趣的函数是CONTRAST:给定一张图片,它会创建一个灰度色图,增强对比度。http://www.mathworks.com/access/helpdesk/help/techdoc/ref/contrast.html - Amro

3
如果您使用灰度色图,那么灰度值线性映射到强度。为了增强暗部特征,您需要将低强度映射到比高强度更大的灰度范围上。换句话说,您需要拉伸低强度并压缩高强度。这可以通过调整色图的 gamma 来实现。当然,您也可以针对 RGB 色图进行 gamma 纠正。
如果您拥有图像处理工具箱,Matlab 命令 IMADJUST 可以实现该功能,用法如下:
newColormap = imadjust(oldColormap,[low_in; high_in],[low_out; high_out],gamma);

新的色图将范围 low_in/high_in 中的值映射到范围 low_out/high_out - 因此您最有可能想使用色图的最小/最大值 - 而 gamma 是您想要设置为>1的内容。
强调暗特征的另一种替代快速方法是显示图像的平方根(或者,为了获得更明显的效果,显示对数)。
imshow(sqrt(img),[])

+1:假设您有图像处理工具箱,IMADJUST是一个不错的选择。 ;) - gnovice
@gnovice:谢谢,我澄清了解决方案 - 尽管我个人倾向于使用平方根或对数来强调。这样做更快,需要的操作更少。 - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接