
opencv学习笔记
文章平均质量分 81
Luts
图像初学者 关注互联网
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
cvSeq结构
CvSeq* cvCreateSeq(int seq_flags,int header_size,int elem_size,CvMemStorage* storage)功能:创建一序列说明:CvSeq本身就是一个可增长的序列,不是固定的序列参数:seq_flags为序列的符号标志。如果序列不会被传递给任何使用特定序列的函数,那么将它设为0,否则从预定义的序列类型中选择一合原创 2014-07-15 21:19:53 · 729 阅读 · 0 评论 -
非刚性人脸跟踪(二)
上一篇博文讲了如何在人脸图像中获得面部特征。这篇博文主要介绍面部的几何模型。在人脸跟踪系统中,几何形状是指在人脸图像上预先定义的一组点的空间结构,这组点与真实人脸上某些几何形状(如眼角、鼻尖和眉毛边缘)保持一一对应关系。面部几何参数变化通常有两个因素组成:全局(刚性)变化和局部(非刚性)形变。全局变化考虑人脸在图像中的整体位置,允许人脸随意变化。局部形变考虑的是不同人面部形状以及同一个人面部表情的差原创 2015-05-06 21:00:30 · 3675 阅读 · 0 评论 -
基于SVM和神经网络的车牌识别
有写过两篇文章介绍如何检测车牌及对车牌字符进行识别,写的有些凌乱,这篇文章将整合一个较为完整的、简短的思路。1.车牌检测主要的步骤: a. sobel滤波器 b. 阈值算子 c. 闭形态学算子 d. 一个区域填充掩码 e. 用红色标记可能存在的车牌区域 f. 执行SVM分类检测车牌a~e属于图像分割,f属于模式识别内容。在车牌分割时,使用的是查找轮廓的方法,提取外接矩形区域原创 2015-04-30 09:30:12 · 1844 阅读 · 0 评论 -
非刚性人脸跟踪(三)
序言相关性块模型 用来学习块模型1 学习基于判别法的块模型2 学习块模型的实现解释全局几何变换训练团块模型与可视化1 训练团块模型2 可视化团块模型总结序言上一篇博文讲了如何获得人脸的几何模型,描述人脸的不同表情模式,保存在序列化文件“shape.xml”中。现在来了解一下面部特征检测器,去一般物体检测器相似,但存在以下区别:精度和鲁棒性: 一般物体检测的目标在于找到图像中粗略的物体原创 2015-05-08 19:32:19 · 1593 阅读 · 0 评论 -
非刚性人脸跟踪(四)
人脸检测与初始化人脸跟踪方法:假设图像中所找到的面部特征与当前的估计比较接近。存在问题:如何使用视频第一帧来初始化模型。解决方法:最简单的是使用opencv内置的级联检测器来搜索人脸,但是模型的检测区域位置将取决于对所跟踪的面部特征的选择。一种基于数据驱动模式的简单方案是,学习人脸检测区域与人脸特征的几何关系。实现:定义一个face_detector类class face_de原创 2015-05-10 11:00:04 · 1823 阅读 · 0 评论 -
非刚性人脸跟踪(一)
非刚性人脸跟踪是对视频流的每帧中人脸特征进行准密(quasi-dense)集估计。非刚性 是指面部特征间的相对距离会随着面部表情和人群的不同而变化。书本涉及的内容:实用工具:简要介绍本章中所使用的常用结构和约定,包括面对对象设计、数据存储与表示,以及数据收集和标注的工具。几何约束:介绍如何从训练数据学习面部几何及其变化情况,也将介绍在跟踪过程中如何利用它们来约束输出,包括对面部进行线性的形状模型建模原创 2015-05-06 20:02:42 · 2340 阅读 · 0 评论 -
拉普拉斯图像融合
1.图像金字塔图像金字塔是一个图像集合,集合中所有的图像都来源于同一个原始图像,而且是通过对原始图像的连续降采样获得,直到达到某个终止条件才停止降采样。 常见的两种图像金字塔: 高斯金字塔(Gaussian pyramid): 向下采样图像 拉普拉斯金字塔(Laplacian pyramid):用来从金字塔低层图像中向上采样重建一个图像。2.图像的向上、向下采样下采样下采样使得图像金字塔的层级原创 2015-06-06 10:43:59 · 9671 阅读 · 0 评论 -
opencv之鼠标事件
在实际的图像处理当中,很多时候需要我们人为的选择感兴趣的区域(ROI),比如在图像中框出目标物体等。其实之前有不少地方都有用到这种鼠标事件的响应功能,感觉挺有用的,虽然不是自动选择物体,现在单独拿出来总结一下。为了可以响应鼠标事件,首先必须创建一个回调函数,该函数使得点击鼠标时,在opencv中注册回调函数,就可以可以调用该回调函数了。回调函数的格式为:void CvMouseCallback( i原创 2015-06-07 10:15:50 · 733 阅读 · 0 评论 -
Activity Recognition行为识别
暑假听了computer vision的一个Summer School,里面Jason J. Corso讲了他们运用Low-Mid-High层次结构进行Video Understanding 和 Activity Recognition的方法,受益颇深,在这里把他的方法总结一下:1. 层次结构表示:· 底层part 重用· 每个object都是一个由有向和无向边连接起来的混合图· 底层通过非线转载 2015-06-07 19:20:27 · 1405 阅读 · 0 评论 -
车牌号识别
这篇文章接着之前的车牌识别,从输入的车图片中分割识别出车牌之后,将进行下一步:车牌号的识别,这里主要使用光学字符识别车牌字符。对每个检测到的车牌,将其每个字符分割出来,然后使用人工神经网络(artificial neural network,ANN)学习算法识别字符。1.字符分割 将获得的车牌图像进行直方图均衡,然后采用阈值滤波器对图像进行处理,然后查找字符轮廓。原图像: 阈值图像: 查找轮廓原创 2015-04-27 12:54:56 · 15650 阅读 · 1 评论 -
opencv 人脸检测例程
opencv 人脸检测简单例程:利用opencv自带的harr分类器检测人脸。 vs 10 + opencv 2.4.8实验源码:/* opencv 人脸检测简单例程*/#include "cv.h"#include "highgui.h"#include #include #include #include #include #include #include原创 2015-04-14 13:39:14 · 1011 阅读 · 1 评论 -
opencv 图像简单逻辑操作汇总与一些常用的函数
1.cvor 函数原型: //两个图像对应元素做或运行void cvOr( const CvArr* src1,//矩阵1 const CvArr* src2,//矩阵2 CvArr* dst,//结果矩阵 const CvArr* mask = NULL//矩阵“开关”); 2.cvors 函数 与 cvor函数区别在于该函数做或运算的不是一幅图像,而是原创 2015-04-08 21:09:02 · 1527 阅读 · 0 评论 -
Master opencv 学习笔记一
输入一幅图像,得到其素描(黑白图画)效果,将素描叠加到彩色图像上,得到一种卡通效果。#include "cv.h"#include "highgui.h"#include "opencv.hpp"#include "stdio.h"#include "stdlib.h"using namespace cv;using namespace std;void cart原创 2015-04-13 21:29:20 · 1917 阅读 · 0 评论 -
基本函数的使用
1.cvSetCaptureProperty设置视频获取属性int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );注意此方法定位并不准确。capture 视频获取结构。property_id 属性标识符。可以是下面之一:CV_CAP_PROP_POS原创 2014-07-03 16:00:49 · 618 阅读 · 0 评论 -
CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)
一、Mat类型:矩阵类型,Matrix。 在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。 Mat有3个重要的方法: 1、Mat mat = imread(const String* filename); 读取图像 2、imshow(con转载 2014-07-04 19:17:59 · 498 阅读 · 0 评论 -
IplImage 结构与使用实例
IplImage结构编辑由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage结构具体定义如下:typedef struct _IplImage{i翻译 2014-07-06 16:04:51 · 514 阅读 · 0 评论 -
CvMat操作
CvMat操作分配释放矩阵空间综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type); type: 矩阵元素类转载 2014-07-04 18:50:23 · 879 阅读 · 0 评论 -
学习opencv 使用反向块投影搜寻图像中的物体的位置 cvCalcBackProjectPatch
转载于:http://blog.youkuaiyun.com/fdl19881/article/details/6726438前一篇讲了使用cvCalcBackProject 寻找 手 的肤色地方 这一篇讲 在一幅图像中寻找 某个特定的小物体步骤:1.使用一幅只包含小物体的图片(图片大小和物体一样大即可, 不需要向上一篇同样大),计算其二维直方图 (HSV空间中的转载 2014-07-24 15:39:45 · 616 阅读 · 0 评论 -
轮廓查找
转载1、查找轮廓轮廓(contour)到底是什么? 一个轮廓对应一系列的店,也就是图像中的一条曲线,OpenCV中一般用序列来存储轮廓信息,序列中的每一个元素是曲线中一个点的位置。轮廓树? OpenCV将得到的轮廓聚合成一个轮廓树,把轮廓的包含关系编码到树结构中,保护的轮廓在树中体现为节点。轮廓树有4种拓扑结构,CV_RETR_EXTER转载 2014-07-25 21:18:28 · 908 阅读 · 0 评论 -
opencv-背景建模
转载于:http://blog.youkuaiyun.com/angl129/article/details/29887783背景建模 在摄像机静止的情况下,背景减法是一种较常见的运动目标检测方法。它利用当前帧和参考帧(背景模型)之差进行运动物体的检测,如下图所示;这些运动的物体一般就是我们感兴趣的目标,即前景检测。详细的描述可参考:http://docs.opencv.o转载 2014-07-29 12:52:30 · 5303 阅读 · 0 评论 -
霍夫圆变换
opencv中实现霍夫圆变换是通过霍夫梯度法。该原理是:首先对图像应用边沿检测(cvCanny)。然后,对边缘图像中每一个非0点,考虑其局部梯度(Sobel()函数计算X、Y方向的sobel一阶导数得到梯度)。利用得到的梯度,由斜率指定的直线上的每一个点在累加器呗累计,这里斜率是从一个指定的最小值到指定的最大值的距离。同时表姐边缘图像中的每一个非零像素的位置。然后从二维累加器中这些点中选择候选中心原创 2015-04-19 09:24:57 · 2714 阅读 · 0 评论 -
霍夫变换
霍夫变换可以用于查找图片中存在的直线或圆,常用于车道线检测、路牌检测等中。其基本理论是二值化图像上的任何点都有可能是一些候选直线集合的一部分。在平面直角坐标系(x-y)中,一条直线可以用下式表示。 y=kx+b 对于直线上一个确定的点(x_0,y_0),有:y_0=kx_0+b 这表示参数平面(k-b)中的一条直线。因此,图像中的一个点对应参数平面中原创 2015-04-19 08:31:08 · 1495 阅读 · 0 评论 -
车牌检测--master opencv
自动车牌识别(Automatic Number Plate Recognition,ANPR),使用一种光学字符识别(O菩提差了Character Recognition, OCR)和其他方法(如图像分割与检测)来获取车辆牌照的监控方法。 对于一个ANPR系统,最好的是使用一个红外(IR)摄像机来获得车辆牌照,因为在分割这一步,对检测和OCR分割很简单、干净,误差小。这由光学的一下基本原理决定的。原创 2015-04-19 19:00:00 · 3108 阅读 · 0 评论