分段线性变换将图像的值域分成多个值域并进行不同线性变换计算,可以压缩某部分灰度区,扩展另一部分灰度区间,下面以2个区间为例:
for m in xrange(h): for n in xrange(w): if img[m,n]>Ds_min and img[m,n]<=Ds_internal: newimg[m,n]=int((Dd_internal-Dd_min)/(Ds_internal-Ds_min)*(img[m,n]-Ds_min)+Dd_min) else: newimg[m,n]=int((Dd_max-Dd_internal)/(Ds_max-Ds_internal)*(img[m,n]-Ds_internal)+Dd_internal)
Ds_min为源区段的最小值域
Ds_internal为源区段的中间分界值
Ds_max为源区段的最大值域
Dd_min为目标区段的最小值域
Dd_internal为目标区段的中间分界值
Dd_max为目标区段的最大值域
左边是经过分段线性变换的图像,右边是原图像,通过压缩高亮度区,扩展低亮度区,使图像比对度更强。
数学之路-python计算实战(12)-机器视觉-图像增强,布布扣,bubuko.com
原文:http://blog.csdn.net/myhaspl/article/details/37775731