本文主要是介绍点运算中的伽马gamma变换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/// 伽马变换 公式:y = (x + esp)^gammaMat Gamma_image;Gamma_image.create(512,512,CV_64FC1);//创建伽马图以保存结果像并初始化cvtColor(input_image, input_image, CV_BGR2GRAY);//输入图像(lena图)灰度化input_image.convertTo(input_image, CV_64FC1, 1, 0);//灰度图像将uchar变为doublenormalize(input_image, input_image, 0, 1, NORM_MINMAX, -1, Mat() );//灰度图归一到[0,1]float esp = 0.1;//定义补偿系数espinput_image = input_image + esp;//x + esppow(input_image, 0.345, Gamma_image);//(x + esp)^gammanormalize(Gamma_image, Gamma_image, 0, 255, NORM_MINMAX, -1, Mat() );//Gamma图像归一到[0,255]Gamma_image.convertTo(Gamma_image, CV_8UC1, 1, 0);//Gamma图像转为8位单通道imshow("Gamma_image",Gamma_image);
将《数字图像处理与机器视觉》书中P76页中的伽马变换做了一下,理论部分在该书的P76-77.
《数字图像处理与机器视觉》 该书下载地址:http://pan.baidu.com/share/link?shareid=3551301329&uk=1610854122
gamma等于1就相当于之前灰度线性变换中Fa=1的情况,这种有侧重增强高、低灰度的方法还是要掌握的。
这篇关于点运算中的伽马gamma变换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!