
OpenCV
文章平均质量分 81
小熊不去实验室
体感互动攻城狮一枚,主要研究:体感互动设备,互动开发平台,开发互动项目,希望向各位大牛多多学习~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习OpenCV——肤色检测:椭圆模型 (&最大连通区域)
简介: 刚开始尝试利用肤色信息进行CV方面的跟踪或者检测,但总是发现肤色信息的除了实时效果比较好,其他的抗噪,鲁棒性都不尽如人意。但是正如tornadomeet所说:其实计算机视觉的最终实现是一个长期的过程,是AI领域一个经典的问题,所以在AI完全突破之前,任何对CV有用的信息都值得去深入研究,除非有一种算法能够在所有情况下都工作。 皮肤检测----肤色椭圆模型原创 2012-12-07 17:25:44 · 23340 阅读 · 7 评论 -
学习OpenCV——SVM 手写数字检测
转自http://blog.csdn.net/firefight/article/details/6452188是MNIST手写数字图片库:http://code.google.com/p/supplement-of-the-mnist-database-of-handwritten-digits/downloads/list其他方法:http://blog.csdn.net/onezer转载 2012-04-13 16:40:16 · 10011 阅读 · 6 评论 -
OpenCV码源笔记——(letter_recog.cpp)随机Forest部分
其中重要函数的参数解释:http://blog.csdn.net/sangni007/article/details/7488727read_num_class_data( const char* filename, int var_count, CvMat** data, CvMat** responses ){ const int原创 2012-04-25 16:50:15 · 4434 阅读 · 0 评论 -
OpenCV码源笔记——Decision Tree决策树
来自OpenCV2.3.1 sample/c/mushroom.cpp 1.首先读入agaricus-lepiota.data的训练样本。 样本中第一项是e或p代表有毒或无毒的标志位;其他是特征,可以把每个样本看做一个特征向量; cvSeqPush( seq, el_ptr );读入序列seq中,每一项都存储一个样本即特征向量; 之后,把特征向量与标志位分别读入Cv原创 2012-04-23 19:40:00 · 9471 阅读 · 4 评论 -
学习OpenCV——SVM
学习SVM,首先通过http://zh.wikipedia.org/wiki/SVM,再通过博客http://blog.csdn.net/yang_xian521/article/details/6969904OpenCV开发SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件原创 2012-04-10 21:32:12 · 21964 阅读 · 22 评论 -
学习OpenCV——Kmeans2算法并验证颜色种类(CvMat*&IplImage*指针的用法)
#include #include #include #define MAX_CLUSTERS (8)using namespace std;int main( int argc, char **argv){IplImage *imgA = cvLoadImage( "D:/1.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD原创 2012-03-23 14:16:05 · 3410 阅读 · 0 评论 -
学习OpenCV——grabcut
GrabCut函数说明Parameters:image – Input 8-bit 3-channel image.mask – Input/output 8-bit single-channel mask. The mask is initialized by the function whenmode is set toGC_INIT_WITH_RECT原创 2012-04-21 16:47:29 · 11762 阅读 · 3 评论 -
学习OpenCV——ORB简化版&Location加速版
根据前面surf简化版的结构,重新把ORB检测的代码给简化以下,发现虽然速度一样,确实能省好多行代码,关键是有BruteForceMatchermatcher的帮忙,直接省的写了一个函数;NB类型:classgpu::BruteForceMatcher_GPU再加上findHomography,之后perspectiveTransform就可以location,但是这样速度很慢;原创 2012-05-08 13:42:43 · 9166 阅读 · 13 评论 -
学习OpenCV——Hog.detectMultiScale的心得
这几天一直为一个问题挠头,搞得好几天没心情,今天想明白了一点赶紧记下来,省的以后忘了。这几天一直折磨我的问题就是Hog.detectMultiScale()函数。我看到网上的有些HoG的文章从一幅完整图像中检测出目标对象时,一个很NB的框框,框的还那么准,比如OpenCV自带的sample:http://blog.csdn.net/sangni007/article/details/745原创 2012-05-07 23:25:56 · 20520 阅读 · 41 评论 -
OpenCV码源笔记——tree_engine(CvDTree,CvBoost,CvRTrees,CvERTrees,CvGBTrees)
CvDTree,CvBoost,CvRTrees,CvERTrees,CvGBTrees都是读取.csv格式样本:dtree.train( &data, CvDTreeParams())dtree.calc_error返回错误率(对于分类来说返回分类样本的错误率,对于回归情况来说是样本的平方误差)dtree.get_var_importance():Returns the variable原创 2012-04-23 21:58:14 · 5088 阅读 · 2 评论 -
学习OpenCV——DrawRect
分别从x,y,h,w分别向中靠近,直到包含区域的像素平均值小于上一次的平均值。分别获取(x,y)(w,h)画框对二值图像效果比较好#include "cv.h"#include "highgui.h"int main(){ IplImage* src=NULL; IplImage* dst= NULL; src= cvLoadImage("D:/1原创 2012-03-23 12:41:16 · 6650 阅读 · 1 评论 -
学习OpenCV——鼠标事件&亮暗化精度最高(与距离反比)&批处理
#include "stdafx.h"#include #include #include #include #include "windows.h"#include #include #include "iostream"using namespace std;typedef vector file_lists;templateT sqr(T x)原创 2012-03-26 20:06:44 · 2115 阅读 · 0 评论 -
学习OpenCV——EMD算法
//adapted by the example of leanring opencv by mikewolf//2008-11-26#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){ IplImage* src, *src1; src=cvLoad原创 2012-04-06 14:08:46 · 9727 阅读 · 6 评论 -
学习OpenCV——鼠标事件 输出鼠标坐标&区域亮化
#include #include #include #include templateT sqr(T x){return x*x;};CvPoint Point;bool Drawing=false;void onMouse(int event,int x,int y,int flags,void* param );void Draw(IplImage* img0,CvP原创 2012-03-26 14:48:05 · 3167 阅读 · 0 评论 -
学习OpenCV——绘制彩色直方图(HSV2BGR)
#include #include #include using namespace std; int main( int argc, char** argv ){ IplImage * src= cvLoadImage("D:/2.jpg"); IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 ); IplIma转载 2012-04-06 20:19:44 · 5285 阅读 · 0 评论 -
学习OpenCV——Bayes贝叶斯分类
//openCV中贝叶斯分类器的API函数用法举例#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h"#include"opencv.hpp"#include "iostream"using namespace cv;using namespace std;//10个样本特征向量维数为原创 2012-04-06 14:04:53 · 3261 阅读 · 1 评论 -
学习OpenCV——肤色检测
前三种方式转载:http://blog.csdn.net/onezeros/article/details/6342567 第一种:RGB color space第二种:RG color space第三种:Ycrcb之cr分量+otsu阈值化第四种:YCrCb中133第五种:HSV中 7 下一步需要滤波操作 因为检测结果中有许多瑕疵#include "highgui原创 2012-04-09 09:50:52 · 14927 阅读 · 6 评论 -
学习OpenCV——一次颜色聚类
1.首先区分三个通道,画出每个通道的直方图;2.平滑直方图,像素值等于前后共七种颜色数量的平均值;3.取波峰,波谷。(条件:颜色数亮s(i-2)s(i+1)>s(i+2)或s(i-2)>s(i-1)>s(i)4.计算算有颜色的组合,并存入一个一维矩阵中;5.颜色合并(利用map);6.把原图所有颜色与合并后的颜色计算距离,得出距离最近的合并颜色,在另一个原图大小的1通道矩阵中,原创 2012-03-23 12:59:52 · 6351 阅读 · 0 评论 -
学习OpenCV——金字塔分割(Trackbar)
运行结果可能会出问题,还是用上一篇的定值效果比较好。#include"cv.h"#include"highgui.h"char wndname[] = "Show";char tbarname0[] = "Level";char tbarname1[] = "Threshold1";char tbarname2[] = "Threshold2";int edge原创 2012-03-23 11:32:44 · 2881 阅读 · 0 评论 -
Facel_ASEF
超龄儿童们 六一到了 祝:表面强大 内心彷徨;容颜未老 心已沧桑 比骡子累 比蚂蚁忙 ;起的比鸡早,睡的比鸡晚 比驴干的多 比猪吃的差; 无论曾经佩戴小红花还是满脸泥巴 无论你是岁数大 还是心眼小 超龄儿童们放纵一下自己吧 别憋着了 平常装大人挺辛苦 过节了 想吃手就吃手想尿床就尿床吧 六一快乐!!!恭喜blog摆脱千里之外,冲进前2W名!言归正传,这几天总体来说没干撒,主要就是在包海燕的原创 2012-06-01 11:21:28 · 4294 阅读 · 4 评论 -
学习OpenCV——hand tracking手势跟踪
这几日,岛上风云突变,我这个倒霉孩子终究木有躲过感冒的魔掌,中枪鸟~~~这几天只写了个简单的手势跟踪的代码。原理是:背景差分+肤色检测。背景差分:取前30帧图像取平均值,计算前30帧之差的和,再求均值。在背景平均值上下浮动的阈值之外的被检测出来。肤色检测:利用YCrCb空间。两个结果相与操作。这种方式的优点:1.有效解决了肤色检测结果中总是检测到人脸的情况;原创 2012-05-14 20:13:43 · 24454 阅读 · 32 评论 -
学习OpenCV——鼠标事件(画框)
#include "cv.h"#include "highgui.h"bool check_line_state=false;IplImage* workImg;IplImage* imgshow;CvRect ROI_rect;void on_mouse4(int event, int x,int y,int flags,void* param){ int原创 2012-05-16 19:51:55 · 9880 阅读 · 5 评论 -
学习OpenCV——PCA主成分分析
机器学习方面的降维讲解(PCA原理,奇异值分解):http://blog.csdn.net/abcjennifer/article/details/8002329 在图形识别方面,主成分分析(Principal Comonents Analysis,PCA)算是比较快速而且又准确的方式之一,它可以对抗图形平移旋转的事件发生,并且藉由主要特征(主成分)投影过后的数据做数据的比对,在多个特征信转载 2012-06-12 15:17:39 · 4770 阅读 · 3 评论 -
学习OpenCV——Kalman滤波
背景:卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。这种滤波方法以它的发明者鲁道夫.E.卡尔曼(Rudolph E. Kalman)命名,但是根据文献可知实际上Peter Swerling在更早之前原创 2012-10-16 10:54:37 · 37337 阅读 · 14 评论 -
学习OpenCV——粒子滤波
据说,OpenCV高版本已经把粒子滤波的CV方面的condensation算法给去掉了,以前学的condensation算法不能用C++开发还是只能用C版本,(以前的一篇粒子滤波实现鼠标跟踪)。要想用粒子滤波跟踪倒是可以利用http://web.engr.oregonstate.edu/~hess/提供的粒子滤波代码Particle Filter,粒子滤波其实有很多变种,Rob Hess实现的原创 2012-10-16 20:22:23 · 5790 阅读 · 7 评论 -
批量处理图像
有很多时候,我们需要对一个文件夹内的所有图像进行处理,这时一张张的Ctrl+F5就让人太蛋疼了,所以就产生了图像批量处理。不扯了,直接上代码:stdafx.h:// stdafx.h : include file for standard system include files,// or project specific include files that are used原创 2012-09-13 15:14:06 · 3079 阅读 · 8 评论 -
学习OpenCV——Gabor函数的应用
原文:http://blog.csdn.net/yao_zhuang/article/details/2532279 下载cvgabor.cpp和cvgabor.h到你的C/C++工程目录下注:在我的资源中有改进过的cvgabor类 相关链接为:http://download.csdn.net/source/490114特别注意:使用该类需要opencv库的支持,如何配置转载 2012-04-08 14:03:25 · 8282 阅读 · 7 评论 -
OpenCV2.4.3新鲜出炉
OPENCV2.4.3终于发布了,距上次发布已经4个月了,相比之前提升灰常之大。下载地址为:OpenCV-2.4.3.exe OpenCV2.4.3增加了许多新特性,变得更加NB了,主要参考:http://code.opencv.org/projects/opencv/wiki/ChangeLog#243这次版本的变化内容有不少是来源于google summer code(GSoC原创 2012-11-08 10:17:59 · 9862 阅读 · 5 评论 -
学习OpenCV——皮肤检测类:CvAdaptiveSkinDetector
OpenCV原来自带的皮肤检测类CvAdaptiveSkinDetector,可以通过颜色阈值分割肤色部分,皮肤检测算法是在HSV空间进行,没什么技术含量。 OpenCV自带是算法的参考文献有网友说是An adaptive real-time skin detector based on Hue thresholding: A comparison on two motion tracki原创 2012-12-03 15:37:10 · 9211 阅读 · 0 评论 -
VS2010+OpenCV2.4.3+Qt4.8.4 图形界面第一个演示程序
终于将VS2010+OpenCV2.4.3+Qt4.8.4配置完成,当然要享受一下图形界面的的好处了,于是参考http://blog.csdn.net/yang_xian521/article/details/6968012这篇文章,来做一个图像打开与翻转的图形界面演示程序。 1.ui设计先新建工程Qt Project --> Qt Application,点击finish完成工程的创原创 2012-12-24 16:49:15 · 8148 阅读 · 13 评论 -
学习OpenCV——车牌检测(定位)
这两天在做关于车牌识别的实验,用了几种方式:1.车牌颜色分布(HSV空间,YCrCb空间的没有颜色分布图谱,无法实验);利用HSV的H通道,效果一般,受环境影响大。#include "highgui.h"#include "cv.h"#include #include #include #includeusing namespace std;CvP原创 2012-04-10 11:04:52 · 26958 阅读 · 53 评论 -
学习OpenCV——Surf简化版
之前写过一遍关于学习surf算法的blog:http://blog.csdn.net/sangni007/article/details/7482960但是代码比较麻烦,而且其中还涉及到flann算法(其中的Random KDTree+KNN),虽然能看明白,但是比较费劲,今天在文档中找到一个简化版本:1.SurfFeatureDetector detector( minHessian )原创 2012-05-07 22:08:43 · 8372 阅读 · 9 评论 -
学习OpenCV——OpenMP
转自:http://www.cnblogs.com/yangyangcv/archive/2012/03/23/2413335.html openMP的一点使用经验最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多转载 2012-05-17 13:16:17 · 4787 阅读 · 1 评论 -
学习OpenCV——配置CUDA环境
大家都把GPU&CUDA说的很NB狠NB,于是,下一步想通过GPU加速程序运行。这一个星期,都在配置OpenCV的CUDA环境,今天终于以失败告终,原因是实验室的机器显卡不支持CUDA。。。伤不起啊,一星期啊!!!支持CUDA的GPU:http://developer.nvidia.com/cuda-gpus 虽然,最终失败了,但是总归还是有收获的,现把它总结起来,提醒自己,也给大家一原创 2012-06-07 17:43:54 · 6500 阅读 · 5 评论 -
使用VS2010调用matlab的mat格式文件
做实验需要将matlab实现的meanshift的结果中的region的Iabels矩阵,需要把labels.mat读入VS2010中,实现功能,在此把实现过程记录下来:C++读取mat文件:1. vs2010的配置新建一个工程,在属性管理器中选择 工程->属性->VC++目录。设置包含目录为:D:\MATLAB\R2010a\extern\include(我的原创 2012-07-07 20:26:28 · 7221 阅读 · 4 评论 -
学习OpenCV——鼠标画画(分水岭算法)
cvSetMouseCallback :设置鼠标事件的回调函数 void cvSetMouseCallback ( const char* window_name, CvMouseCallback on_mouse, void* param=NULL );window_name :窗口的名字。on_mouse:指定窗口里每次鼠标事件发生的时候,被调用的函数指针。这个函数的原型应该为原创 2012-04-06 19:46:11 · 4171 阅读 · 6 评论 -
学习OpenCV——用OpenCv画漫画
闲的时候用OpenCV画漫画也挺有意思,虽然效果不好(达不到上面所实现的效果),参数需要调整,还是大头贴而且噪声小的图像比较合适而且可以熟悉一下关于各种滤波的操作比如:双边滤波;#include "cv.h"#include "highgui.h"using namespace cv;using namespace std;int main(){ str原创 2012-05-07 23:49:13 · 7679 阅读 · 2 评论 -
学习OpenCV——Laplacian图像融合
网上看到一个很有意思的利用opencv实现图像融合的方法:1.设计一个mask(一半全1,一半全0),并计算level层的gaussion_mask[i];2.计算两幅图像每一层的Laplacian[i],并与gaussion_mask[i]相乘,合成一幅result_lapacian[i];3.对两幅图像不断求prydown,并把最高层保存在gaussion[i],与gaussion原创 2012-06-07 11:14:14 · 6159 阅读 · 8 评论 -
学习OpenCV——学习grabcut算法
由于make paper的需要,又把以前只大概了解的grabcut算法重新拿出来研究了一下~grabcut主要是通过Min Cut: Global minimal enegry in polynomial time实现,具体参考论文OpenCV中的GrabCut算法是依据《"GrabCut" - Interactive Foreground Extraction using Itera原创 2012-08-30 20:23:26 · 9420 阅读 · 3 评论 -
学习OpenCV——计算邻接区域列表(build_adjoin)
最近遇到一个问题,就是在图像分割完成后,需要把相邻的区域都列出来用于下一步计算,也就是说,我需要找到与任意一个区域相邻的所有区域。最后在XX的启发下终于完成,主要就是:1. 初始化每个像素有8条edge,分别连接相邻的元素;2. 计算所有edge指向的元素是否属于同一个region,如果属于放弃,如果不属于,则存放在一个regNum*regNum大小的Mat中; 代码:#inclu原创 2012-09-12 21:14:38 · 3199 阅读 · 7 评论