opencv(9)直方图均衡化,对比,匹配


1 直方图均衡化

void cvEqualizeHist( const CvArr* src, CvArr* dst );//输入 输出,8位单通道图像  
opencv直方图采用的方法:
  1. 计算输入图像的直方图 H
  2. 直方图归一化,因此直方块和为255
  3. 计算直方图积分
  4. 采用H'作为查询表:dst(x,y)=H'(src(x,y))进行图像变换。

测试1   直方图均衡化

直方图均衡化


测试图像:

4

2 .直方图对比

double cvCompareHist( const CvHistogram* hist1, const CvHistogram* hist2, int method );

对比的的方法用method表示,主要由以下几种办法:

CV_COMP_CORREL 相关方法:完全匹配为1,完全不匹配为-1,0是无关联

CV_COMP_CHISQR 卡尔:完全匹配是0 ,完全不匹配为无限值

CV_COMP_INTERSECT 直方图相交:完全匹配为1,完全不匹配为-1,0是无关联

CV_COMP_BHATTACHARYYA   Bhattacharyya距离,Bhattacharyya 距离只能应用到规一化后的直方图,完全匹配是0 ,完全不匹配为1

在直方图对比前,都应该进行归一化操作,直方图相交的方法效果最好,卡尔和Bhattacharyya距离速度最慢也较精确。

测试代码:

直方图对比

输出结果:

8 

也就是这两张图像 并没什么相关,如果和源图像对比,输出结果如下:

7


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM