OpenCV成长之路:图像直方图的应用
2016-03-01 11:13
288 查看
OpenCV成长之路:图像直方图的应用
2014-04-11 13:57:03
标签:opencv 图像 直方图
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4424644.html
正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用。
这里我们就可以考虑用直方图的反射映射。
1,收集人脸皮肤样本。
2,拼合样本并计算其颜色直方图。
3,将得到的样本颜色直方图反射映射到待检测的图片中,然后进行阈值化即可。
这里为了简单起见,我们只用两张人脸样本,实际中可以进一步扩展。
在提取样本皮肤的直方图时,我们需要对这些样本图像做一些处理,比如把头发、眼睛等部位去除,我们这里使用一个mask即可。
由于我们要计算彩色直方图像,为了简化色彩,我们还需要对颜色降维,相关函数在本系列文章第2篇中已经有介绍了。
上面程序中有以下几点值得说明:
1,在作彩色图像直方图的反向映射时,一般需要对图像颜色进行降维。
2,OpenCV中提供的函数clacBackProject用于计算直方图的反向映射,其参数和计算直方图的参数大体相同。
3,threshold是一个阈值化的函数。
下面我们来计算两幅图像之间的相似度:我们以左边一幅图像作为参考图像,是没有车辆停放时的图像,右边两幅跟左边比较计算相似性。中间一幅是有车辆停放时,右边一幅是另一个时刻没有车辆停放时。
这个例子实际可以应用在停车位上车辆检测上面:
最终输出结果为:
dist1=0.69
dist2=0.08
上面程序中有以下几点值得说明:
1,程序中ColorHistogram是自定义的一个类,其中包括了直方图求取与图像的颜色降维,
2,直方图的比较函数为compareHist(refH,imgH,CV_COMP_XX),最后一个参数是两个矢量间距离计算的方法。
本文出自 “Ronny的成长之路” 博客,请务必保留此出处/article/4424644.html
2014-04-11 13:57:03
标签:opencv 图像 直方图
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4424644.html
正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用。
一、直方图的反向映射。
我们以人脸检测举例,在人脸检测中,我们第一步往往需要先提取图像中皮肤区域来缩小人脸的检测范围,这一般获得皮肤的颜色范围还需要定义阈值并不断的调整,实际中参数太多而不容易控制。这里我们就可以考虑用直方图的反射映射。
1,收集人脸皮肤样本。
2,拼合样本并计算其颜色直方图。
3,将得到的样本颜色直方图反射映射到待检测的图片中,然后进行阈值化即可。
这里为了简单起见,我们只用两张人脸样本,实际中可以进一步扩展。
在提取样本皮肤的直方图时,我们需要对这些样本图像做一些处理,比如把头发、眼睛等部位去除,我们这里使用一个mask即可。
由于我们要计算彩色直方图像,为了简化色彩,我们还需要对颜色降维,相关函数在本系列文章第2篇中已经有介绍了。
上面程序中有以下几点值得说明:
1,在作彩色图像直方图的反向映射时,一般需要对图像颜色进行降维。
2,OpenCV中提供的函数clacBackProject用于计算直方图的反向映射,其参数和计算直方图的参数大体相同。
3,threshold是一个阈值化的函数。
二、图像相似性的比较
图像相似性比较是比上面直方图映射更加实用且普通的例子,前段时间淘宝或百度推出类似搜图的功能都离不开图像相似性判断这个话题,当然本文这里面不可能去深入探讨那些解决方案的实现,只是利用OpenCV中的例程来简单的实现图片的匹配。下面我们来计算两幅图像之间的相似度:我们以左边一幅图像作为参考图像,是没有车辆停放时的图像,右边两幅跟左边比较计算相似性。中间一幅是有车辆停放时,右边一幅是另一个时刻没有车辆停放时。
这个例子实际可以应用在停车位上车辆检测上面:
dist1=0.69
dist2=0.08
上面程序中有以下几点值得说明:
1,程序中ColorHistogram是自定义的一个类,其中包括了直方图求取与图像的颜色降维,
2,直方图的比较函数为compareHist(refH,imgH,CV_COMP_XX),最后一个参数是两个矢量间距离计算的方法。
本文出自 “Ronny的成长之路” 博客,请务必保留此出处/article/4424644.html
相关文章推荐
- OpenCV成长之路:图像直方图
- OpenGL与红宝书第八版第一个程序配置
- tomcat各目录(文件)作用以及Imac下启动Tomcat
- Apache中的poi包中的XSSFWorkbook与HSSFWorkbook的区别
- opencv学习问题汇总
- 【nginx】nginx的启动,修改和停止
- 20条Linux命令面试问答
- 【转】linux(Ubuntu)配置svn仓库,搭建svn服务器
- 【转】Linux下svn的常用工作流程
- OpenCV成长之路:图像滤波
- linux下删除乱码文件名的方法
- Windows平台shellcode开发入门(三)
- Windows平台shellcode开发入门(二)
- Windows平台shellcode开发入门(一)
- 【转】Ubuntu下搭建SVN环境-Apache
- centos6.5制作本地yum源
- linux中的nm命令简介
- 用zabbix监控nginx_status状态
- Java调用Linux下的shell命令并将结果以流的形式返回
- sqlite数据库读写在linux下的权限问题