![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV 学习
文章平均质量分 79
一步一个脚印的屌丝
一个数学屌丝,走在it的道路上。
展开
-
浅析人脸检测之Haar分类器方法
转载:http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html由于工作需要,我开始研究人脸检测部分的算法,这期间断断续续地学习Haar分类器的训练以及检测过程,在这里根据各种论文、网络资源的查阅和对代码的理解做一个简单的总结。我试图概括性的给出算法的起源、全貌以及细节的来龙去脉,但是水平有限,只能解其大概,希望对初学者起到帮助,更主转载 2013-05-19 21:42:29 · 1590 阅读 · 0 评论 -
openCv学习笔记(一)——数字图形的基础和结构
一图像基础 1 数字图像 又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。 2. 像素 像素(或像元,Pixel)是数字图像的基本元素,像素是在模拟图像数字化时对连续空间进行离散化得到的。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。原创 2012-07-26 21:19:01 · 3012 阅读 · 0 评论 -
openCv2.3.1与vs2005
最近把电脑还原了,想提一下电脑的速度。所以要再重新安装程序,原先用的OpenCv2.0,现在在网上看到最新的是2.3.1.所以强烈的好奇心要用最新的。但是搜了好久网上的基本是vc2008和vs2010的。所以,无奈自己编译,研究。。。。。 把自己的安装过程分享一下,希望大家不会浪费这么多时间。好了,废话少说,开始配置。。。 下载OpenCV从 http://www.op原创 2012-07-07 10:55:25 · 4718 阅读 · 3 评论 -
opencv写入的视频
1、cvCreateVideoWriter()中的第二个参数:avi对应的编码格式分别为: CV_FOURCC('P','I','M','1') = MPEG-1 codec CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well) CV_FOURCC原创 2012-03-17 22:33:52 · 1474 阅读 · 0 评论 -
openCV中矩阵的读取
在OpenCV中有三种方式访问矩阵中的数据元素:容易的方式,困难的方式,以及正确的方式。以下先讲容易的方式和困难的方式。容易的方式最容易的方式是使用宏CV_MAT_ELEM( matrix, elemtype, row, col ),输入参数是矩阵的指针,矩阵元素类型,行,列,返回值是相应行,列的矩阵元素,例如:CvMat* mat = cvCreateMat(5,5,CV_32FC1转载 2012-02-19 16:28:06 · 3454 阅读 · 0 评论 -
openCV中的矩阵创建和释放
学习openCV中对于其矩阵总是搞混,现在通过学习,算是有一点理解,同大家分享一下一矩阵的创建 (1)CvMat* cvCreateMat( int rows, int cols, int type ); 创建矩阵,并为其分配内存。 CvMat* myCvMat=cvCreateMat(10,10,CV_32FC1);与下面相等 Cv原创 2012-02-19 16:05:41 · 4569 阅读 · 0 评论 -
openCV中的向量和图像的创建
#include #include #include #include void CreateEchelonIdentity(CvArr *Array,CvScalar Color){ cvSetIdentity(Array,Color);//将数组中对角线上的元素设为1,其他置为0}void CreateRectangle(CvArr *Array,CvP原创 2012-02-18 22:47:23 · 1988 阅读 · 0 评论 -
openCV中矩阵1
CvMat操作分配释放矩阵空间综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间: CvMat* cvCreateMat(int rows, int cols, int type); type: 矩阵元素类型.原创 2012-02-16 22:53:53 · 957 阅读 · 0 评论 -
openCV的第一天-显示图像
今天做了一个openCV的小程序,显示一个图片。一开始运行不了,忘了在引用中加入cxcore200d.libcv200d.libml200d.libcvaux200d.libhighgui200d.lib大家别忘了哈。。。#include "stdafx.h"#include"highgui.h"int main(int argc, char** argv)原创 2012-02-15 22:50:19 · 1553 阅读 · 0 评论 -
openCV在vs2005中配置
openCV在vs2005中配置前一段时间由于需要使用openCV,在网上找了许久如何配置。最终还是上面的博客比较好,按照操作已经配置上了,不要着急一步一的做就行。大家一起加油转载 2012-02-14 21:53:09 · 873 阅读 · 0 评论 -
openCv学习笔记(二)—cv::Mat学习
由于在写上一篇图像的数据结构时,发现自己只知道CvMat,竟然还有Mat数据结构,真是无知了,看了这么多程序,貌似没有看到这个结构。有可能那些程序都是些老版本的例子,这是在2.0以后加上的,所以我也得紧跟呀!以下是自己的学习心得。。。。一、Mat简介 在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建。为了在内存(memory)中存放图像,当时采用名为 IplImage原创 2012-07-27 10:06:52 · 10109 阅读 · 3 评论 -
openCv学习笔记(三)——openCv数据结构之间的转换
1 由IplImage*得到BYTE*图像数据:data = iplImage->imageDataOrigin; //未对齐的原始图像数据或者data = iplImage->imageData; //已对齐的图像数据2 由BYTE*得到IplImage*图像数据iplImage = cvCreateImageHeader(cvSize(width,height),depth原创 2012-07-28 10:01:05 · 3549 阅读 · 0 评论 -
openCv学习笔记(四)-数学形态学1(二值图像的膨胀、腐蚀、开运算和闭运算)
一 形态学基本概念 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。 在很多邻域中,如预处理、基于物体形状分割、物体量化等,与其他标准算法相比,形态学方法都有更好原创 2012-07-28 13:39:31 · 6159 阅读 · 0 评论 -
openCv学习笔记(十三)—贝叶斯分类器的实现
第一个是用c语言做的关于文本的分类,主要是对待分类文本所有单词在模板中概率的后验计算。算法比较简单,从网上下的(没记下地址,若不愿意公开,请留言,自当处理),稍作了一点修改。。,等有时间可以实现垃圾邮件的分类,利用斯坦福机器学习公开课中方法,统计高频词,利用朴素贝叶斯。等有时间和大家分享。#include #include #include //_getcwd(), _chdir()#原创 2012-08-20 16:47:45 · 4342 阅读 · 2 评论 -
openCv学习笔记(十二)—贝叶斯分类
这几天在学习贝叶斯分类,据说它的文本分析很给力,主要是应用简单,所以就小试以下。。。。首先看一下贝叶斯应用的一个小例子:一个士兵射击,分别在100,200,300处射击击的概率是0.7,0.2,0.1,而在各处射中目标的概率是0.6,0.2,0.04。现在目标已被击毁,求士兵在200米击中的概率?这个要用到贝叶斯,设A1,A2,A3分别为士兵在100,200,300处射击,B为击中目标原创 2012-08-20 15:31:32 · 3492 阅读 · 0 评论 -
openCv学习笔记(十一)—位图的读取与存储(c语言实现)
typedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned int DWORD;typedef long LONG;//位图文件头定义;//其中不包含文件类型信息(由于结构体的内存结构决定,//要是加了的话将不能正确读取文件信息)typedef struct tagRGBQUAD{ BYTE rg原创 2012-08-14 17:27:51 · 4344 阅读 · 1 评论 -
openCv学习笔记(十)-滤波
一滤波的基本概念 图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。 图像滤波总体上讲包括空域滤波和频域滤波。频率滤波原创 2012-08-03 13:02:18 · 5651 阅读 · 0 评论 -
openCv学习笔记(九)-自己实现分水岭算法并且用openCv测试
为了验证上一篇博文中的算法,自己稍作修改,即利用openCv里的图像结构。为了简单,直接采用Mat.at(i,j)进行图像操作,效率肯定低,如果感兴趣可参考http://blog.csdn.net/caiye917015406/article/details/7791815改进算法。不过这里只是测试效果,就将就吧。。。 在算法中要手动选取阀值进行图像的二值化,这给分水岭算法的效果有很大影响。原创 2012-07-30 10:13:11 · 3034 阅读 · 1 评论 -
openCv学习笔记(八)-分水岭算法及实现(c语言函数)
之前搜了很多分水岭算法的文章,有许多在我的博文中,但是还没有真正的把分水岭算法的代码看懂和测试。这次重新梳理一下。一 分水岭算法描述 Watershed Algorithm(分水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分割。现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。当然在需要的时候,要人工构筑分水岭,以防集水盆之间的互相穿透。而区分高原创 2012-07-29 22:51:14 · 3783 阅读 · 1 评论 -
openCv学习笔记(七)-漫水填充算法详解
一 漫水填充算法描述 1..1 、种子填充算法 种子填充算法是从多边形区域内部的一点开始,由此出发找到区域内的所有像素。 种子填充算法采用的边界定义是区域边界上所有像素具有某个特定的颜色值,区域内部所有像素均不取这一特定颜色,而边界外的像素则可具有与边界相同的颜色值。 具体算法步骤:(1)标记种子(x,y)的像素点 (2)检测该原创 2012-07-29 11:32:33 · 8262 阅读 · 0 评论 -
openCv学习笔记(六)-openCv对形态学的运算处理
一 首先要了解openCv里的核结构:IplConvKernel,以下如何创造 IplConvKernel* cvCreateStructingElementEx( int cols, //行 int rows, //列 int anchor_x, //核的封闭矩形内的参考点的坐标 int anchor_y, int shape, //CV_SHAPE_RECT:核原创 2012-07-28 21:11:03 · 5844 阅读 · 0 评论 -
openCv学习笔记(五)-数学形态学2(灰度级膨胀和腐蚀及c语言实现)
一 基本概念 所谓的灰度级膨胀和腐蚀即将而知图像的二值形态学运算推广到灰度图像上。对于一幅图像的腐蚀(膨胀)运算定义为对每个像素赋值为某个领域内输入图像灰度级的最小(或最大值)。在二值变换中的结构元素只代表一个领域,而在灰度级变化中,结构元素是一个二元函数,它规定了希望的局部灰度级性质。在求的邻域内最大值(或最小值)的同时,将结构元素的值相加(相减)。 以下的灰度级运算将从数学原创 2012-07-28 19:00:06 · 3240 阅读 · 0 评论 -
压缩跟踪Compressive Tracking源码理解
转自:http://blog.csdn.net/zouxy09/article/details/8210176压缩跟踪Compressive Tracking源码理解zouxy09@qq.comhttp://blog.csdn.net/zouxy09 在前面一个介绍《Real-Time Compressive Tracking》这个paper的感知跟踪算法的博文中转载 2013-05-30 10:25:56 · 1570 阅读 · 0 评论