OpenCV
LevinLin
本博客现只用于学习用,可能会转载他人的知识,若有涉及到您的版权问题,请与我联系。
> 飛雪迎春到﹐風雨送春歸
> 已是寒崖百丈冰﹐尤有花枝俏
> 俏也不爭春﹐只把春來報
> 待得山花爛漫時﹐他在叢中笑
展开
-
Zernike 矩
<br /><br />在模式识别中,一个重要的问题是对目标的方向性变化也能进行识别。Zernike 矩是一组正交矩,具有旋转不变性的特性,即旋转目标并不改变其模值。。由于Zernike 矩可以构造任意高阶矩,所以Zernike 矩的识别效果优于其他方法.<br />Zernike 提出了一组多项式{ V nm ( x , y) } 。这组多项式在单位圆{ x2 + y2 ≤1} 内是正交的,具有如下形式: V nm ( x , y) = V nm (ρ,θ) = Rnm (ρ) exp ( jmθ) ,并转载 2011-05-25 11:43:00 · 4175 阅读 · 0 评论 -
Opencv中cvCopy()和cvCloneImage()的区别
<br /><br />cvCloneImage() 内存泄漏问题<br />cvCloneImage函数:<br /> <br />这个函数已验证会出现较大的内存泄露!!虽然可以释放,但因程序复杂不知道在那里释放,因为它每次拷贝是制作图像的完整拷贝包括头、ROI和数据。每次使用时编译器会分配新的内存空间,不会覆盖以前的内容。一个752*480大小或是稍小的图像,每次泄露的内存大约为1M。<br /> <br />解决方法:<br />使用cvCopy函数代替。<br />cvCopy(pSrcImg,pI原创 2011-05-09 21:33:00 · 5112 阅读 · 0 评论 -
cvDilate()膨胀 cvErode()腐蚀函数
void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );src 输入图像.dst 输出图像.element 用于膨胀的结构元素。若为 NULL,原创 2011-05-07 11:14:00 · 10370 阅读 · 0 评论 -
CvvImage在openCV2.2中移除
<br />CvvImage类:<br />-----------------头文件--------------------------------------------<br />#pragma once<br />#ifndef CVVIMAGE_CLASS_DEF<br />#define CVVIMAGE_CLASS_DEF<br />#include "opencv.hpp"<br />/* CvvImage class definition */<br />class CvvImage<br原创 2011-04-26 20:04:00 · 1770 阅读 · 0 评论 -
Laplace算子及cvLaplace
Sobel算子的基础,Laplace算子就显得十分简单了。Sobel算子一般用来求一阶导数,而有些图像求一阶导数之后边缘也不一定十分清析,需要求其二阶导数,在计算机中,一般运算都用迭代法实现。同样,近似定义其二阶导数。其窗口如图所示:可以看出Δf=4×Z5-(Z2+Z4+Z6+Z8),以这种方式就能以二阶导数的方式找出图像的边界。这种方式有其优点也有其缺点,优点就是由于彩用了二阶导数,可以确定边界在亮边还是暗边,暗边>0,亮边下面看看Sobel对X方向,Sobel对Y方向和Laplace图像处理图像的效果吧原创 2011-04-27 11:46:00 · 2103 阅读 · 0 评论 -
Sobel算子及cvSobel
由于项目里要用到边缘检测,所以今天研究了一下最简单的梯度的方法。 首先,我们来开一下计算机是如何检测边缘的。以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函数就是一个一次函数y=kx,对其求一阶导数就是其斜率k,就是说边缘的一阶导数是一个常数,而由于非边缘的一阶导数为零,这样通过求一阶导数就能初步判断图像的边缘了。通常是X方向和Y方向的导数,也就是梯度。理论上计算机就是通过这种方式来获得图像的原创 2011-04-27 15:03:00 · 1783 阅读 · 0 评论 -
cvImage转至 openCV2.2
开始加上#include 没反应,查了下在#include 里,添加-->成功原创 2011-04-26 17:01:00 · 1424 阅读 · 0 评论 -
图像边缘检测Sobel,Laplace,Canny
<br /> <br /><br /><br />#include "cv.h"<br /> #include "cxcore.h"<br /> #include "highgui.h"<br /> void main()<br /> {<br /> IplImage * pImage=NULL;<br /> IplImage * pImage8uGray=NULL;<br /> IplImage * pImage8uSmooth=NULL;<br />原创 2011-04-27 17:15:00 · 3501 阅读 · 1 评论 -
复杂背景下实时目标出现与消失的判别
1 引 言 运动物体的检测与跟踪处于视觉监控里面的最基本部分,是后续各种高级处理如目标分类,行为分析等的基础。运动目标的检测是指从视频流中实时的提取出运动的目标,并对其进行识别与判定。物体的出现和消失是物体运动检测过程中经常遇到的问题。在复杂的背景中判别物体的出现和消失是对感兴趣的物体准确跟踪的前提。在发生遮挡,行人丢包,车辆非法停留等场景中,根据前景灰度的变化,传统的帧间差分转载 2011-06-16 11:12:00 · 5333 阅读 · 0 评论 -
Hu矩
在连续情况下,图像函数为 ,那么图像的p+q阶几何矩(标准矩)定义为:p+q阶中心距定义为:其中 和 代表图像的重心,对于离散的数字图像,采用求和号代替积分: 和 分别是图像的高度和宽度;归一化的中心距定义为: ;其中利用二阶和三阶归一化中心矩构造了7个不变矩 :这7个不变矩构成一组特征量,Hu.M.K在1962年证明了他们具有旋转,缩放和平移不变性。实际上,在对图片中物体的识别过程中,只有 和 不变性保持的比较好,其他的几个不变矩带来的误差比较大,有学者认为只有基于二阶矩的不变矩对二维物体的描述才是真正的转载 2011-05-31 09:44:00 · 19454 阅读 · 3 评论 -
cvResize用法
#include "stdafx.h"#include #include #include int main(int argc, char* argv[]){ IplImage*src = 0; //源图像指针 IplImage*dst = 0; //目标图像指针 float scale = 0.618; //缩放倍数为.618倍原创 2011-05-23 14:16:00 · 22166 阅读 · 4 评论