OpenCv/EmguCv
文章平均质量分 50
勇敢牛牛_
不念往昔,无惧将来。
展开
-
基EmguCv/OpenCv的零件的缺陷检测
基EmguCv/OpenCv的零件的缺陷检测 思路:对图像去噪和二值化处理;提取外部轮廓,并填充;提取内部轮廓并以另一种颜色填充;外轮廓和内轮廓叠加,得到缺陷区域;对缺陷区域做二值化处理,并提取轮廓计算缺陷面积;标记处缺陷位置。存在的缺陷:只能检测外测缺陷,无法检测内部缺陷。效果图 源代码(c#)using Emgu.CV;using Emgu.CV.CvEnum;原创 2017-02-17 10:48:55 · 13510 阅读 · 0 评论 -
【Eye-Tracking】六、脸部处理
脸部处理函数public List<Image<Bgr, byte>> GetFaceImgByXML(Image<Bgr, byte> img, string FaceXML)主要功能:封装了opencv级联分类器检测人脸的函数,使用更简单。返回:检测到的人脸图像private List<Image<Bgr, byte&...原创 2018-03-30 13:22:44 · 902 阅读 · 0 评论 -
【Eye-Tracking】一、眼动追踪概述
什么是眼动追踪? 顾名思义就是追踪眼睛的运动。准确来讲就是通过图像处理技术,定位瞳孔位置,获取瞳孔中心坐标,并通过某种方法,计算人的注视点,让电脑知道你正在看什么。 眼动追踪有什么用?VR及游戏领域 目前大部分VR设备或者应用需要用户用手进行操作,时间长了以后就会感觉疲劳,而眼睛部分的肌肉对疲劳免疫(因为正常情况下,我们不觉得动一下眼睛是很累的事情),所以通过眼睛来操作VR场景或游戏,可以减缓原创 2018-03-30 11:29:44 · 29510 阅读 · 0 评论 -
【EmguCv】眼睛和瞳孔定位(一)
定位思路1.定位脸部 2. 将脸部分为左右两张图像 3. 分别在左右脸部图像中定位眼睛 4. 对眼睛进行模糊处理,寻找瞳孔 5. 得到瞳孔轮廓重心一、脸部定位public List<Image<Bgr, byte>> GetFaceImgList(Image<Bgr, byte> img) { CascadeClassifier faceClassif原创 2018-01-20 18:46:51 · 3690 阅读 · 0 评论 -
【EmguCv】瞳孔定位(二)
瞳孔定位(二)瞳孔定位(一)在上一篇文章中用的是检测轮廓检测的方法定位瞳孔,效果不是很好。这次通过计算横向和纵向的灰度图像的灰度值来定位瞳孔中心的横纵坐标。思路:1.还先识别脸部,然后将脸部图像分为四个区域,对上半部分的区域进行眼睛识别得到眼睛图像。2.对得到的眼睛图像进行模糊处理,消除噪声。3.计算横向和纵向的像素值,选取像素值最低的横行的索引和像素值最低的列的索引来原创 2018-02-03 20:12:55 · 2866 阅读 · 1 评论 -
【C#】图像滤镜(一):图像平滑
一、高斯平滑1. 高斯核计算 private double[,] GaussianKernel(int N) { int i, j; double sigma = 1; double[,] gussian = new double[N, N]; double sum = 0.0;原创 2017-11-24 14:23:13 · 2748 阅读 · 0 评论 -
【Emgucv】图像卷积(TEST)
1. 使用3×3的核进行卷积实现浮雕效果-1 , -1 ,0-1 , 0 , 10 , 1 ,1 double[,] h = { { -1, -1, 0 }, { -1, 0, 1 }, { 0, 1, 1 } }; private Image<Bgr,byte> Juanji(Image<Bgr,byte>pic) { Image<Bgr, byte> o原创 2017-11-16 21:32:40 · 884 阅读 · 0 评论 -
【OpenCv/EmguCv】指针式仪表读数(二)
1. 计算偏移角度计算三个点的夹角:以仪表圆心为中心,指针的一个端点和参考点为另外两个点计算三个点所组成的两条线段的夹角α public double Angle(Point cen, Point first, Point second) { const double M_PI = 3.1415926535897; double ma_原创 2017-11-16 14:38:04 · 7597 阅读 · 15 评论 -
【EmguCv】人脸/人眼检测
目录:获取脸部和眼部图像的接口定义IFacecsIFaces接口实现FaceImplcsCascadeClassifierDetectMultiScale参数分类文件检测截图1. 获取脸部和眼部图像的接口定义(IFace.cs) using Emgu.CV; using Emgu.CV.Structure; using System.Collections.Generic;原创 2017-10-13 16:26:48 · 2180 阅读 · 0 评论 -
【OpenCv/EmguCv】指针式仪表读数(一)
1. 预处理1.1 双边滤波img.SmoothBilatral(int val1,int val2,int,val3)(原图)(双边滤波)(高斯滤波)高斯滤波将整张图都变得模糊了,双边滤波则保留了清晰轮廓特征,效果比较好。1.2 灰度并二值 img.Convert<Gray, byte>()//灰度化g (灰度图)ThresholdBinary(new Gray(Parameters.Bin原创 2017-10-27 21:50:56 · 6928 阅读 · 0 评论 -
【C#】基于Opencv/Emgucv的身份证识别
身份证识别一、tesseract-ocr简介OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。 Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。 数年以后,HP意识到,与其原创 2017-09-18 20:36:38 · 7465 阅读 · 5 评论 -
【C#】身份证识别(三):身份证信息识别
一引言二tesseract-ocr的使用三tesseract-ocr识别身份证信息四识别结果一、引言通过前两篇文章身份证识别(一):身份证号定位身份证识别(二):提取目标区域图像已经得到了各个信息区域的图像。只剩最后一步:识别图像上的文字信息。本次对于文字的识别,采用了tesseract-ocr识别。二、tesseract-ocr的使用之前采用调用tesseract的方式进行识别,但发现效率太原创 2017-09-26 20:44:07 · 15600 阅读 · 0 评论 -
【C#】身份证识别(二):提取目标区域图像
目录一获取身份证号区域矩形二获取地址出生年月性别名族姓名区域矩形获取号码区域位置获取各个区域的包围矩形三剪切目标区域四提取效果一、获取身份证号区域矩形身份证号区域矩形的获取,见上一篇文章: 身份证识别(一):身份证号定位二、获取地址、出生年月、性别、名族、姓名区域矩形1. 获取号码区域位置在第一步得到的结果是一个旋转矩形RotatedRect,该矩形的属性如下: Angle:矩形旋原创 2017-09-26 17:20:11 · 10762 阅读 · 0 评论 -
【C#】身份证识别(一):身份证号定位
完整项目地址:https://gitee.com/xgpxg/ICRS 一、图像预处理灰度化图像。二值化图像。 利用 AdaptiveThresholdType 全局化阈值,blockSize = 55时,效果最好。public static Image<Gray,byte> BinImg(Image <Bgr ,byte> img) { ret原创 2017-09-22 12:48:01 · 8394 阅读 · 4 评论 -
指针式仪表自动识别和读数
《指针式仪表自动识别和读数》系列文章本系列文章是关于“指针式仪表的自动读数与识别”,主要内容包括仪表图像预处理、表盘定位、指针定位和读数等,并基于Hough变换(HT)、随机霍夫变换(RHT)等法方,提出了新的圆检测以、直线检测以及模板匹配方法,最后用C#实现了一个仪表自动读数的系统。指针式仪表自动读数与识别(一):前言指针式仪表自动读数与识别(二):仪表图像预处理指针式仪表自动读数与识...原创 2019-03-26 10:52:03 · 17499 阅读 · 25 评论