OpenCV
文章平均质量分 84
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
OpenCV 编程简介(矩阵/图像/视频的基本读写操作)
<br />PS. 由于csdn博客文章长度有限制,本文有部分内容被截掉了。<br />在OpenCV中文网站的wiki上有可读性更好、并且是完整的版本,欢迎浏览。<br />OpenCV Wiki :《OpenCV 编程简介(矩阵/图像/视频的基本读写操作)》<br /> <br />Introduction to programming with OpenCV <br />OpenCV编程简介 <br />Gady Agam <br />Department of Computer Science <b原创 2010-10-31 22:26:00 · 3651 阅读 · 1 评论 -
vs2008 + OpenCV-2.1.0-win32-vs2008安装
vs2008 + OpenCV-2.1.0-win32-vs2008安装1. 安装vs2008+sp12. 安装opencv-2.1.0-win32-vs2008,假设安装目录为c:/opencv2.1。安装过程中注意选择添加环境变量,把 “add it to your Current User PATH “前的复选框勾上 .3. 为vs2008配置openvc,过程如下: 工具->选项->项原创 2010-10-28 11:14:00 · 2512 阅读 · 0 评论 -
VS2010下配置 OpenCV2.2
下载OpenCV2.2 安装我的安装路径是D:\Program Files\OpenCV2.2打开VS2010新建项目HelloOpencv在中 单击打开打开分别在包含目录加入D:\Program Files\OpenCV2.2\includeD:\Program Files\OpenCV2.2\include\opencv在库目录加入D:\Program Files\OpenCV2.2\l转载 2013-04-05 23:27:15 · 5913 阅读 · 0 评论 -
使用OpenCV实现WebCam摄像头保存JPEG图片(改良3版)
http://blog.sina.com.cn/s/blog_3e4774e30100fur7.html 本次的代码(OpenCV是2.0的,在2.0中的cvSaveImage函数里多了一个参数可以设置保存图片的质量)从上次实现从电脑上的摄像头捕捉视频并一秒保存一张图片的效果并可以修改保存的图片的像素功能出发,实现了毫秒级保存图片的功能,代码如下(本程序在OpenCV1.0下编译不通过):/转载 2013-04-05 23:49:12 · 6338 阅读 · 4 评论 -
OpenCv ORB例子代码
#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/imgproc/imgp原创 2013-04-28 21:16:37 · 8761 阅读 · 1 评论 -
OpenCV 获取摄像头并显示摄像头视频
OpenCV 获取摄像头,新建窗口显示摄像头视频 结合Leaning OpenCV 第二个例子 显示一个视屏文件 写了一下 获取摄像头的代码为并且创建窗口显示的代码为:#include "stdafx.h"#include #include #include int main( int argc, char** argv ){ //声明IplImage指针原创 2013-04-05 23:25:59 · 97379 阅读 · 25 评论 -
OpenCV肤色检测
前三种方式转载:http://blog.csdn.net/onezeros/article/details/6342567 第一种:RGB color space第二种:RG color space第三种:Ycrcb之cr分量+otsu阈值化第四种:YCrCb中133第五种:HSV中 7 下一步需要滤波操作 因为检测结果中有许多瑕疵#include "highgui.h" #include原创 2013-04-28 21:05:59 · 9157 阅读 · 1 评论 -
OpenCv 直方图
函数直方图是图像各灰度值统计特性与图像灰度值的函数,它统计图像中各个灰度支出项的次数或者是概率,对图像的分析很有帮助。代码如下:#include#include#include//#include#include//#includeint main(){ int hist_size=255; float range_0[]={0,256}; float *r原创 2013-04-28 21:13:22 · 2160 阅读 · 0 评论 -
OpenCv xml读写
#include "highgui.h" #include "cv.h" #include #include #pragma comment(lib, "cv.lib")#pragma comment(lib, "cvaux.lib")#pragma comment(lib, "cxcore.lib")#pragma comment(lib, "hi原创 2013-04-28 21:56:56 · 3474 阅读 · 0 评论 -
OpenCv的连通域操作
由于项目需要,要对图像中的最大连通域进行标定,并且存储。首先需要使用cvFindCountour对边缘进行标定,其实它的原理就是连通域的边缘提取;其次就是对连通域进行大小判断找出最大的连通域;最后当然就是进行Rect并且ROI了。如果有需要可以进行存储。直接上源码吧。#include "cv.h"#include "cxcore.h"#include "highgui.h" int原创 2013-04-28 19:32:45 · 48411 阅读 · 4 评论 -
OpenCV的CvArr, Mat, CvMat, IplImage, BYTE转换
一、Mat类型:矩阵类型,Matrix。 在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。Mat有3个重要的方法:1、Mat mat = imread(const String* filename); 读取图像2、imshow(const string frameName, InputArray mat); 显示图像3、imwrite (c原创 2013-04-28 15:40:43 · 10547 阅读 · 0 评论 -
OpenCV的IplImage图像格式
IplImage 结构解读:typedef struct _IplImage{int nSize; /* IplImage大小 */int ID; /* 版本 (=0)*/int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */int alphaChannel; /* 被OpenCV忽略 */int depth; /原创 2013-04-28 15:38:59 · 6791 阅读 · 0 评论 -
OpenCV的IplImage与BMP相互转换
BMP与IplImage相互转换使用方法简要介绍:在windows编程中,很多图片信息,都是基于windows系统所谓的DIB(设备无关位图)的结构,其定义在结构体 BITMAPINFOHEADER 中。本方法可以讲 windows 定义的DIB 结构和Opencv内部定义的IPLImage结构做相互转化。 具体使用方法:将文件 bmp2ipl.h 和 bmp2ipl.cpp 添加到你的代码中。转载 2013-04-28 15:37:38 · 3528 阅读 · 0 评论 -
OpenCV的三帧差法
// threeDifferent.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h" #include "cv.h" #include "cxcore.h" #include "cvaux.h" #include #include #include原创 2013-04-28 22:02:21 · 8177 阅读 · 3 评论 -
OpenCv的xml读写
int sub_test_opencv_xml_write(void){ // 创建文件存储对象 CvFileStorage *fs=cvOpenFileStorage("test.xml",0,CV_STORAGE_WRITE); // 写注释 cvWriteComment(fs,"测试写XML文件",1); // 开始写结构,类型是图map,也就是有名字的无序节点原创 2013-04-28 22:08:28 · 9401 阅读 · 0 评论 -
OpenCV的jpg到ppm图片格式转换
// ipgToppm.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h" #include #include #include #include #include using namespace std; void jpg2ppm(char* input, char原创 2013-04-28 22:09:51 · 8383 阅读 · 4 评论 -
OpenCV的ppm到bmp图片格式转换
#include #include #include #include #include using namespace std;int main(int argc, char * argv[]){ char* pFilename="54.ppm"; ifstream ifile;//input ppm file ofstream ofil原创 2013-04-28 22:11:28 · 4233 阅读 · 0 评论 -
Opencv 图片的初步处理——平滑处理
Opencv 图片的初步处理——平滑处理 明天上午还有HP的二面 本来要睡了 想了下 还是又写了一篇关键函数:Smooth各种方法的图像平滑 void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int par原创 2013-04-05 23:28:45 · 14867 阅读 · 0 评论 -
OpenCV调用摄像头录像并保存下来
http://www.cnblogs.com/lingshaohu/archive/2011/12/16/2290017.html网上很多都说录制了之后视频文件为0k,或者是打不开。其实,这个原因主要与2方面有关: 1. OpenCV生成的视频的编码格式有关。 2. 非法退出录取有关(我用200次循环解决。或者可以用Timer。或者用其他键处理) 我个人推荐的解决方法如下:1.下载一个XviD原创 2013-04-05 23:29:58 · 15006 阅读 · 5 评论 -
使用OpenCV实现WebCam摄像头保存JPEG图片(改良1版)
http://blog.sina.com.cn/s/blog_3e4774e30100frwi.html 本次的代码(OpenCV是1.0的)从上次实现从电脑上的摄像头捕捉视频并一秒保存一张图片的效果出发,增加了可以修改保存的图片的像素功能,代码如下://使用OpenCV实现获取摄像头数据并1秒保存成一张jpg图片(保存的图片的大小被缩小了),jpg图片的大小可调,文件名为test.c转载 2013-04-05 23:56:29 · 4175 阅读 · 0 评论 -
OpenCV操作PCA+SVM代码
// pca_svm.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cvaux.h"#include "ml.h"using namespace cv;using namespace std;#pragma comment(lib原创 2013-04-28 21:00:02 · 8946 阅读 · 4 评论 -
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/onezeros/a原创 2013-04-28 21:09:14 · 4907 阅读 · 5 评论 -
OpenCV的otsu自适应阈值分割的算法在肤色检测中的应用
otsu算法选择使类间方差最大的灰度值为阈值,具有很好的效果 算法具体描述见otsu论文,或冈萨雷斯著名的数字图像处理那本书 这里给出程序流程: 1、计算直方图并归一化histogram 2、计算图像灰度均值avgValue. 3、计算直方图的零阶w[i]和一级矩u[i] 4、计算并找到最大的类间方差(between-class variance) variance[i]=(avgValue*w[原创 2013-04-28 22:27:17 · 3911 阅读 · 0 评论 -
OpenCv的sift surf orb等特征点检测
#include "opencv2/highgui/highgui.hpp"#include "opencv2/features2d/features2d.hpp"#include int main( ){ cv::Ptr detector = cv::FeatureDetector::create( "SIFT" ); cv::Ptr extractor =原创 2013-04-28 22:28:05 · 5318 阅读 · 0 评论 -
OpenCV简单粗糙的指尖检测方法(FingerTips Detection)
在人机交互领域,如果可以比较好的检测指尖,对于交互的丰富度、灵活性来说是有很大提升的。目前指尖检测的方法也很多,我这里稍微尝试了下简单了两种。这两种方法都借助了手的几何特征,简单但比较粗糙,鲁棒性不够。 方法一:重心距离法 见下图,红色点是手的重心,那么手的边缘的所有点与重心点的距离按顺时针方向或者逆时针方向遍历,就会出现五个峰值,分别是五个手指,这样我们就可以简单找到了。如果你是只原创 2013-04-28 22:30:19 · 12729 阅读 · 7 评论 -
OpenCV的rectangle of camera
#include "stdafx.h"#include #include #include using namespace cv;using namespace std;Rect box;bool drawing_box = false;bool gotBB = false;int *initialBB;void mouseHandler(int原创 2013-04-28 22:36:02 · 5007 阅读 · 0 评论 -
OpenCV摄像头视频的获取
#pragma warning(disable : 4996)#include #include #pragma comment( lib, "cxcore.lib" )#pragma comment( lib, "highgui.lib" )void main(int argc, char *argv[]){ CvCapture* capture = 0;//视频流捕获 if(a原创 2013-04-05 23:17:06 · 8026 阅读 · 0 评论 -
使用OpenCV实现WebCam摄像头保存JPEG图片
由于在OpenCV1.0中只提供了从硬盘打开JPEG图像进行解码,有些时候如果JPEG的图像数据是从内存载入的,就无法使用这些曾经很方便高效的接口。为了实现这个目的,我们通过修改OpenCV1.0源码,在其源码包中添加函数,实现把jpeg数据从内存复制到IplImage结构中,这为我们进行相应处理会方便很多,实现过程如下: 修改源码包目录下的otherlibs/highgui目录下的如下源码文原创 2013-04-06 00:00:03 · 4138 阅读 · 0 评论 -
OpenCV显示摄像头图像保存成bmp文件
#include "cv.h" #include "highgui.h" #include "stdio.h" #include "atlstr.h"#pragma warning(disable : 4996) #pragma comment(lib, "cv.lib")#pragma comment( lib, "cxcore.lib" ) #pragma原创 2013-04-06 00:08:33 · 6594 阅读 · 1 评论 -
OpenCv中cv::Mat和IplImage,CvMat之间的转换
Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Matlab中的各种矩阵运算),所以将IplImage类型和CvMat类型转换为Mat类型更易于数据处理。 Mat类型可用于直接存储图像信息,通过函数imread、imwrite、imshow等实现(与Matlab中的函数相似),似乎在某种程度上可以取代IplImage类型。(1)将IplImage类型转换到Ma原创 2013-04-28 20:17:46 · 5833 阅读 · 1 评论 -
OpenCv类CvMat操作
综述: OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样. OpenCV将向量作为1维矩阵处理. 矩阵按行存储,每行有4字节的校整. 分配矩阵空间: CvMat* cvCreateMat(int rows, int cols, int type); type: 矩阵元素类型. 格式为CV_(S|U|F)C. 例如: CV_8U原创 2013-04-28 20:51:52 · 6715 阅读 · 0 评论 -
Opencv读取文件夹连续图片,RGB分量显示,图像灰度化
1.读取文件夹连续图片刚开始学习图像处理,开始只能一次读入一张图片,今天从网上查了一些资料,自己写了一个可以连续读取多张图片函数。char filename[100];char windowname[100];IplImage* pScr;unsigned char *Readfigsmethod1(int num)// 读入num个图片{ for(int i=1;i<=num原创 2013-04-28 20:57:30 · 8652 阅读 · 0 评论 -
OpenCV操作SVM+HOG
http://blog.csdn.net/raocong2010/article/details/6239431http://blog.sciencenet.cn/blog-261330-548546.htmlhttp://blog.csdn.net/sangni007/article/details/7471222#include "cv.h" #include "highgui.h"原创 2013-04-28 21:01:45 · 6565 阅读 · 0 评论 -
OpenCV的PCA人脸识别
在工作目录下建立/pic文件夹放入测试图片,建立/positive文件夹,放入自己的训练数据(我使用的是自己的相片中截获好的头像)建立list.txt,在里面写入pic/文件名以回车隔开,即可。#define CV_NO_BACKWARD_COMPATIBILITY#include "cv.h"#include "highgui.h"#include #include原创 2013-04-28 21:14:06 · 8396 阅读 · 3 评论 -
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库的支持,如何配置环境参见:http:/原创 2013-04-28 21:11:20 · 5374 阅读 · 0 评论 -
OpenCV读指定时间的视频
int ReadVideo(char* filename, int t_start, int t_stop){ unsigned int max_num=0; VideoCapture cap(filename); if (!cap.isOpened()) { printf("\nNo Videl found!\n"); return -1; }原创 2013-04-28 22:13:49 · 4561 阅读 · 1 评论 -
OpenCV 播放视频的QT 代码
http://mobile.51cto.com/symbian-271265.htmhttp://blog.csdn.net/yang_xian521/article/details/7042687// myWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H #include #include #include #inc原创 2013-04-28 22:23:19 · 9594 阅读 · 2 评论 -
opencv实现连通域
在本文中使用图像连通域统计使用opencv中的cvFloodFill方法,但是在cvFloodFill方法中CvConnectedComp参数无法返回具体点坐标位置信息,找了些资料、给CvSeq分配空间但是还是contour内容没有值,估计是OPENCV2.00版本不支持。如果想获取点坐标信息有两种方法:一是通过源代码改写cvFloodFill函数来返回点坐标信息;二是cvFloodFill连通之原创 2013-04-28 22:59:37 · 4016 阅读 · 0 评论 -
采用金字塔方法进行图像分割
#include "cv.h"#include "highgui.h"#include #pragma comment(lib, "cv.lib")#pragma comment(lib, "cvaux.lib")#pragma comment(lib, "cvcam.lib")#pragma comment(lib, "cxcore.lib")#pragma co原创 2013-04-28 23:10:57 · 3010 阅读 · 0 评论 -
CxImage 简单配置与使用
CxImage 简单配置与使用如果本篇文章还不能解决你在生成解决方案以及便宜过程中的问题 请参阅:http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成功运行的经验.CxImage是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一转载 2013-03-15 14:01:46 · 3711 阅读 · 0 评论