您的位置:首页 > 编程语言

灰度图像的对数变换原理及OpenCV代码实现!

2016-06-13 16:14 429 查看
对数变换的公式为:



其中c为常数,r>=0 

对数变换目前我知道的有两个作用:

①因为对数曲线在像素值较低的区域斜率较大,像素值较高的区域斜率比较低,所以图像经过对数变换之后,在较暗的区域对比度将得到提升,因而能增强图像暗部的细节。

②图像的傅里叶频谱其动态范围可能宽达0~10^6。直接显示频谱的话显示设备的动态范围往往不能满足要求,这个时候就需要使用对数变换,使得傅里叶频谱的动态范围被合理地非线性压缩。

在OpenCV中,图像对数变换的实现可以直接通过对图像中每个元素运算上述公式完成,也可以通过矩阵整体操作来完成。下面的代码中给了三种方法,其中方法一和方法三都是通过矩阵整体操作来完成,第二种方法是对图像中每个元素操作来完成。方法一和方法三的区别是前者是对源图像作对数运算,后者是对目标图像作对数运算!

源代码如下(代码中用到的图像下载链接 http://pan.baidu.com/s/1i4Dvm2h):
//OpenCV版本2.4.9
//交流QQ2487872782

2016-8-4日注:很报歉,此代码目前不能公开发表在博客上,已经删除,希望大家理解!


运行结果如下图所示:









可见,第二种方法将来在做具体应用的时候是肯定要放弃的!

-------------------------------------------

欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对数变换