OpenCV学习
nongfu_spring
这个作者很懒,什么都没留下…
展开
-
OpenCV学习笔记-图像金字塔
图像金字塔所用函数为:[cpp] view plaincopyPyrDown 图像的下采样 void cvPyrDown( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 ); src 输入图像. dst 输出图像, 宽度和高度应是输入图像的转载 2013-08-27 12:42:28 · 733 阅读 · 0 评论 -
casecade结构和HAAR检测流程
//使用样例,其中_cascade为CvHaarClassifierCascade结构,//cascade为CvHidHaarClassifierCascade结构for(i = 0; i _cascade->count; i++ ){ intj, k, l; for(j = 0; j cascade->stage_classifier[i]原创 2014-09-01 11:16:47 · 7848 阅读 · 1 评论 -
双边滤波
1. 简介图像平滑是一个重要的操作,而且有多种成熟的算法。这里主要简单介绍一下Bilateral方法(双边滤波)。Bilateral blur相对于传统的高斯blur来说很重要的一个特性即可可以保持边缘(Edge Perseving),这个特点对于一些图像模糊来说很有用。一般的高斯模糊在进行采样时主要考虑了像素间的空间距离关系,但是却并没有考虑像素值之间的相似程度,因此这样我们得到的模糊结原创 2015-05-28 17:37:42 · 2120 阅读 · 0 评论 -
KNN算法
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法可以说是整个数据挖掘分类技术中最简单的方法了。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用她最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或原创 2015-03-20 10:17:27 · 3887 阅读 · 0 评论 -
计算积分图
积分图是为了加速计算HAAR特征值,积分图中每个点的值代表“积分”,即计算相应矩形框中所有像素的累积和。该矩形框的左上角为图像原点,右下角为图像每一点的位置。积分图比原图多一行和一列,分别对应原图像最上面和最左面,即最上面对应以最上面的点为矩形框右下角,此时累积和都为0;最左面对应以最左面的点为矩形框右下角,此时累积和也都为0。 为了方便计算积分图,每一点的值为以下二者的和:1.原创 2014-09-01 11:07:53 · 1214 阅读 · 0 评论 -
Opencv中meanShiftSegmentation的实现
Opencv中meanshift的实现1.样例在opencv-2.4.6.1\samples\cpp的meanShift_Segmentation.cpp中staticvoid meanShiftSegmentation(int, void* ){ cout <<"spatialRad=" spatialRad <<"; " "colorR原创 2014-09-01 19:19:26 · 1937 阅读 · 1 评论 -
并查集---partition函数使用
本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。关于动态连通性我们看一张图原创 2014-09-01 11:25:45 · 947 阅读 · 0 评论 -
groupRectangles函数详解
templatetypename_Tp, class _EqPredicate> intpartition(const vector_Tp>&_vec, vectorint>&labels, _EqPredicate predicate=_EqPredicate()){ inti, j, N = (int)_vec.size原创 2014-09-01 11:25:45 · 3871 阅读 · 1 评论 -
图像变换-霍夫变换
HoughLines利用 Hough 变换在二值图像中找到直线 CvSeq* cvHoughLines2( CvArr* image, void* line_storage, int method, double rho, double theta, int threshold, double pa原创 2014-06-06 11:43:37 · 871 阅读 · 1 评论 -
光流检测(optical flow)
函数解析cvGoodFeaturesToTrack,http://blog.csdn.net/moc062066/article/details/6634120,和cvFindCornerSubPix,http://blog.csdn.net/moc062066/article/details/6634961两个函数的基础,接下来就是在视频中检测光流(optical flo原创 2013-12-18 14:28:18 · 1752 阅读 · 0 评论 -
积分图
cvIntergral 积分图像可作为任意尺寸矩形图像求和的快速运算。设I为image的积分图像。则计算左上角坐标(x1,y1)和右下角(x2,y2)的矩形区域像素和的公式为: sum = I(x2,y2)-I(x1-1,y2)-I(x2,y1-1)+I(x1-1,y1-1); /* Finds integral image: SUM(X,Y) = sum(xCVAP原创 2013-12-05 11:08:59 · 588 阅读 · 0 评论 -
轮廓处理函数
用多边形曲线逼近 Freeman 链CvSeq* cvApproxChains( CvSeq* src_seq, CvMemStorage* storage, int method=CV_CHAIN_APPROX_SIMPLE, double parameter=0, int minimal_per原创 2013-12-10 10:10:38 · 1115 阅读 · 0 评论 -
SURF 特征提取和匹配
梯度只是一维的变化,也就是边缘的信息。一个导数值明显的点可能是某处的边缘,但却和此边缘的其他点看起来一样。如果一个点在两个正交的方向上都有明显的导数,这个点更倾向于独一无二。最普遍是使用二维Hessian矩阵SURF(Speeded Up RobustFeature)是一种高鲁棒性的局部特征点检测器。由Herbert Bay 等人在2006年提出。该算法可以原创 2013-09-11 16:17:00 · 2195 阅读 · 0 评论 -
OpenCV 直方图
CreateHist创建直方图CvHistogram* cvCreateHist( int dims, int* sizes, int type, float** ranges=NULL, int uniform=1 );dims直方图维数的数目sizes直方图维数尺寸的数组,也就是bin的个数,即有多少块。如灰度图,像素范围为0~255,bin为256,即原创 2013-09-05 11:50:27 · 653 阅读 · 0 评论 -
AdaptiveThreshold
void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,int threshold_type=CV_THRESH_BINARY, int block_size=3, double param1=5 );原创 2016-05-27 11:03:50 · 1165 阅读 · 0 评论