项目中遇到了图像对比度不强的图像,于是想通过对图像进行亮度变换以达到预期的图像,于是研究了一下图像的亮度变换。其实,之前在matlab中也碰到过,在冈萨雷斯的《数字图像处理(matlab版)》第47页,有对亮度变换函数imadjust进行了讲解。当然啦,也可以直接通过matlab的help,查看imadjust的用法:
J = imadjust(I)
J = imadjust(I,[low_in; high_in],[low_out; high_out])
J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)
newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)
RGB2 = imadjust(RGB1,...)
需要注意的是:low_in,high_in,low_out, high_out都在[0,1]之间,并且low_in 必须要小于high_in的,但是low_out 则可以大于high_out,这相当于对图像进行了反转。gamma不写的时候,默认是1,且当gamma小于1的时候趋向更亮;当gamma大于1的时候趋向于更暗。
下面我们直接上代码: