OpenCV提取轮廓的方法获取瞳孔区域及中心
来源:互联网 发布:ubuntu使用教程pdf 编辑:程序博客网 时间:2024/04/29 06:35
OpenCV获取瞳孔区域及中心
1、目标:获取人眼感兴趣之后,利用图像处理知识,提取图像轮廓,根据目标物体具体的宽高比,面积等信息筛选轮廓,生成轮廓凸包,获得目标物体中心。
图1人眼区域图片 图2二值化后的瞳孔区域mat_threshold(合适的阈值需不断迭代获取,过程复杂)
2、实现过程:
提取轮廓的通用方法比较成熟,OpenCV也提供相对成熟的代码可供使用。因此,简要介绍过程:
cv::findContours(mat_threshold, contours,hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
//提取图像轮廓。只检测外轮廓;压缩各元素,只保留该方向的终点坐标。
{
//主要函数
float tmparea =(float)cv::contourArea(contours[j]); //计算轮廓的面积
cv::RotatedRect rect =cv::minAreaRect(contours[j]);//求包含点集最小面积的矩形
cv::Rect aRect =cv::boundingRect(contours[j]);//计算点集的最外面(up-right)矩形边界
cv::vector<cv::vector<cv::Point>>hull(contours.size());
convexHull(cv::Mat(contours[j]), hull[j],false, true); //能得到轮廓的凸包。
//通过以上获取的信息,根据目标物体具体的宽高比,面积等信息筛选轮廓。具体问题,具体分析。
}
cv::drawContours(mat_blob, hull, 0,RGB(255, 0, 0), CV_FILLED); //实心画出图片
图3瞳孔凸包区域图像
根据瞳孔几何关系、最小二乘方式等,不断收敛到瞳孔中心,输出并标记瞳孔中心。与标定的瞳孔中心的差距小,能达到开发要求。
图4瞳孔中心(红色十字叉表示)
光斑中心检测过程简单很多。大致思路一致。
- OpenCV提取轮廓的方法获取瞳孔区域及中心
- opencv提取直线、轮廓及ROI的描述方法
- 【OpenCV学习笔记 010】提取直线、轮廓及连通区域
- 【OpenCV学习笔记 010】提取直线、轮廓及连通区域
- OPENCV学习笔记 提取连通区域的轮廓
- opencv之7.5提取联通区域的轮廓
- OPENCV中提取连通区域轮廓
- 7.5提取联通区域的轮廓
- 基于QT和opencv的瞳孔定位及跟踪程序
- OpenCV 基于轮廓提取的二值图像分析与连通区域标记算法
- 《OpenCV求轮廓的矩中心》
- OpenCV 文字区域的提取
- OpenCV 文字区域的提取
- OpenCV--线、轮廓的提取与描述
- 【OpenCV】直线、轮廓的提取与描述
- opencv学习:提取物体的轮廓矩
- OpenCV直线、轮廓的提取与描述
- OpenCV提取轮廓(去掉面积小的轮廓)
- Hierarchical temporal memory
- UIScrollViewDelegate-代理API详解
- c++(10)const限定符(一)
- 第 8 章 Jenkins – 设置Build Job
- YII做项目总结二
- OpenCV提取轮廓的方法获取瞳孔区域及中心
- Redis学习手册(List数据类型)
- 基础知识:继承与多态
- iOS学习项目(22-触摸事件传递与响应者链条)
- 简单的实现两个物体在摄像机视野内的代码
- nginx和tomcat的响应时间
- 版本更新
- 一起写RPC框架(六)RPC网络模块的搭建四 请求响应---异步"表白","同步"Yes,I do
- Android 三种方式实现自定义圆形页面加载中效果的进度条