博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人眼定位识别
阅读量:4288 次
发布时间:2019-05-27

本文共 1757 字,大约阅读时间需要 5 分钟。

  • 本系列历程启发于“禾路老师”的视频课程,学习到两个重要知识点:实战和自己的库!
  • 本系列历程多源于answer.opencv论坛的一些牛人的解答,作为小白只是代码的搬运工。

言归正传,请看项目要求:

  • 求取找到人眼位置
  • 根据人眼特征确定
  • 简单的小例子,实用价值不大,但是对于其他项目有帮助!

思路分析一:

  • 利用黑色特征进行筛选
  • 然后根据眼睛是成对出现,再进一步帅选

思路分析二:

  • 利用拉普拉斯金字塔对人进行特征提取
  • 提取之后利用眼睛位置很亮进行帅选
  • 当然也可以根据眼睛大概的位置进行帅选,如:脸部、成对出现、周围是白色眼珠。。。。

代码实现:

  • 本博文利用第二种方法,识别精度和效率较高
  1. 去拉普拉斯金字塔,自己手动构造。
  2. 利用眼睛特征进行筛选
#include 
#include
using namespace std;using namespace cv;int main(int argc, const char** argv){ Mat matFrontFace = imread("abc.png"); Mat gray; Mat temp; double minPixelValue, maxPixelValue; Point minPixelPoint, maxPixelPoint; cvtColor(matFrontFace, gray, COLOR_BGR2GRAY); // Laplacian pyramid pyrDown(gray, temp); pyrUp(temp, temp); temp = gray - temp; // 找两个最亮的地方,且距离不能低于一个阈值 size_t count = 0; vector
point; do { //寻找最大值 minMaxLoc(temp, &minPixelValue, &maxPixelValue, &minPixelPoint, &maxPixelPoint); if (count == 0) { point.push_back(maxPixelPoint); circle(matFrontFace, maxPixelPoint, 10, Scalar(0, 0, 255), 2); temp.at
(maxPixelPoint.y, maxPixelPoint.x) = 0; count++; } else { //---两只眼睛高度差别低于5,距离在35-100之内 float dis = sqrt(pow(maxPixelPoint.x - point[0].x, 2) + pow(maxPixelPoint.y - point[0].y, 2)); if (dis > 35 && dis<100 && abs(maxPixelPoint.y - point[0].y)<5) { point.push_back(maxPixelPoint); circle(matFrontFace, maxPixelPoint, 10, Scalar(0, 0, 255), 2); count++; } else { temp.at
(maxPixelPoint.y, maxPixelPoint.x) = 0; } } } while (count!=2);}

人眼定位结果图

拉普拉斯金字塔

参考资料:

转载地址:http://yvtgi.baihongyu.com/

你可能感兴趣的文章
论文笔记|Get To The Point: Summarization with Pointer-Generator Networks
查看>>
linux安装MySQL主从同步(一主两从)搭建与配置
查看>>
linux上mysql从库故障恢复步骤(删除数据重新同步)
查看>>
linux上安装jdk
查看>>
linux 安装nginx
查看>>
linux 搭建rocketmq集群
查看>>
Linux 安装maven
查看>>
linux 安装reids集群
查看>>
linux 安装zookeeper集群
查看>>
RocketMq单机安装(Windows)
查看>>
Windows 上安装 MySQL
查看>>
CentOS-7搭建Gitlab服务器
查看>>
软件架构设计原则(我们为什么要学习)
查看>>
eclipse 的mybatis中mapper.xml文件标签没有提示的解决方法
查看>>
linux 上一主两从mysql集群中某台数据库宕机解决方法
查看>>
大牛面试指南
查看>>
android入门(一)---UI组件之文本框(TextView)
查看>>
演示动画怎么实现的
查看>>
android入门---Activity组件.活动(一)
查看>>
Android入门---GridView组件
查看>>