
OpenCV
晴堂
喜欢学习,爱钻研的程序员。
展开
-
openCV实现多人脸检测,多眼部检测,完整代码和详细注释
一,说明及环境 代码是完全参考opencv中自带的源代码,将其中很多不必要的代码已经删除。环境是opencv2413,vs2013,win10。 目录结构如图所示: 其中的xml文件在原创 2016-08-23 22:11:34 · 7125 阅读 · 5 评论 -
OpenCV实现摄像机标定和像素转换,surf寻找特征点,FLANN匹配算子进行匹配
最近做项目需要摄像机标定和图像转换,OpenCV可以较好的实现这个功能。我的这个例子可以生成两个摄像头的3x3转换矩阵。但是因为摄像头本身存在成像畸变,尤其是全景摄像机,可能会有更加严重的成像畸变,所有如果试图通过计算两幅完整图像而得到转换单一矩阵,这个矩阵并不能准确的反应出两幅图像像素之间的对应关系,尤其是靠近边缘区域的像素尤其如此。一个好的建议是将两幅图像分为若干个大小相等也可以不原创 2016-11-04 23:35:34 · 3101 阅读 · 20 评论 -
Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配
Sift和Surf算法实现两幅图像拼接的过程是一样的,主要分为4大部分:1. 特征点提取和描述2. 特征点配对,找到两幅图像中匹配点的位置3. 通过配对点,生成变换矩阵,并对图像1应用变换矩阵生成对图像2的映射图像4. 图像2拼接到映射图像上,完成拼接代码如下:#include "highgui/highgui.hpp" #include "opencv2/no原创 2016-11-13 16:40:58 · 10102 阅读 · 10 评论 -
OpenCV实现车牌识别,OCR分割,ANN神经网络
主要步骤:准备车牌单个字符图像作为神经网络分类器的训练数据,越多越好。当然需要对每幅图像提取特征,这里使用的是水平和垂直累计直方图和缩小后的图像信息。获取车牌图像,这里的车牌图像已经完成抠图,并且是灰度图像。将车牌图像中每个字符分割成单一图像(OCR类实现)。提取分割出的字符图像特征信息,并使用分类识别字符(OCR类实现)。 程序运行过程:原创 2016-12-08 22:47:02 · 25152 阅读 · 397 评论 -
使用FDDB人脸样本检测库,测试自己的人脸检测算法性能并生成ROC曲线。
一,说明及环境网上有关FDDB人脸检测库的使用以及ROC文件生成的文章太少,并且都无法检测opencv中自带的人脸检测算法。最近工作的原因,需要用到FDDB库检测我们自己的人脸检测算法性能。所以认真研究了FDDB库的使用,并生成了ROC文件。所有代码在Win10,VS2013,opencv2411下亲测可用。二,过程及代码1,下载FDDB图片库,注解文件以及生成ROC文件的源代原创 2016-08-25 21:20:05 · 12254 阅读 · 88 评论 -
otsu结合OpenCV实现灰度图像自动阈值处理
简单的说,这种算法假设一副图像由前景色和背景色组成,通过统计学的方法来选取一个阈值,使得这个阈值可以将前景色和背景色尽可能的分开。或者更准确的说是在某种判据下最优。与数理统计领域的 fisher 线性判别算法其实是等价的。otsu算法中这个判据就是最大类间方差 (intra-class variance or the variance within the class)。下面就来详细说说什原创 2016-11-07 23:06:40 · 5977 阅读 · 3 评论 -
基于OpenCV实现二值图细化,骨骼化并求出端点和交叉点
所谓细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。骨架,可以理解为物体的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。得到了骨架,就相当于突出物体的主要结构和形状信息,去除了多余信息,根据这些信息可以实现图像上特征点的检测,如端点,交叉点和拐点。下面先介绍经原创 2016-11-12 00:12:58 · 32207 阅读 · 76 评论 -
神经网络ANN分类器及OpenCV实现
OpenCV中实现神经网络分类非常简单,使用CvANN_MLP定义分类器,CvANN_MLP_TrainParams设置训练参数,添加训练数据,使用train和predict进行训练和预测。 CvANN_MLP_TrainParams各训练参数说明: term_crit:训练算法的终止标准,确定算法的最大迭代次数(对序列反向传播算法,该值乘以训练集大小)和两次迭原创 2016-11-22 23:23:51 · 8962 阅读 · 1 评论 -
SVM支持向量分类器原理及OpenCV实现
SVM原理: 通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。假设给定一些分属于两类的2维点,这些点可以通过直线分割, 我们要找到一条最优的分割线,如下图所示:原创 2016-11-20 22:58:37 · 3331 阅读 · 1 评论