OpenCV
文章平均质量分 66
清风似水流
身似行云流水,心如皓月清风。
展开
-
OpenCV2 轮廓处理 多边形逼近
一、说明 轮廓的多边形逼近指的是:使用多边形来近似表示一个轮廓。 多边形逼近的目的是为了减少轮廓的顶点数目。 多边形逼近的结果依然是一个轮廓,只是这个轮廓相对要粗旷一些。 函数原型:void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed)原创 2013-08-05 18:03:40 · 8236 阅读 · 0 评论 -
OpenCV常用的灰度变换方法
1.图像的反色代码如下:void MakeMat() { IplImage* src = NULL; //加载图片至内存 src = cvLoadImage("E:\\图片\\测试用\\2.jpg"); if (NULL == src) { return; }原创 2012-11-28 23:24:58 · 4475 阅读 · 0 评论 -
图像内插-最近邻内插法
一、图像内插-最近邻内插法1、数学原理 当一幅二维数字图像从源图像N*M被放为(j*N) * (k*M)目标图像是,参照数学斜率计算公式 必然有: (X1 – Xmin)/(Xmax - Xmin) = (Y1 - Ymin)/(Ymax-Ymin) 当Xmin 和 Ymin均为从零开始的像素点时,公式可以简化为:X=Y1 (Xmax/Yma原创 2013-08-31 09:12:52 · 16152 阅读 · 1 评论 -
图像叠加 给照片加水印
C++: void Mat::copyTo(OutputArray m) constC++: void Mat::copyTo(OutputArray m, InputArray mask) const这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上我们可以在大照片上设置一个和小照片一样大的感兴趣转载 2013-09-10 10:52:16 · 1709 阅读 · 1 评论 -
OpenCV导入图像显示到MFC的PICTURE控件
步骤1:添加PICTURE控件,设置控件属性如下图所示:步骤2:将CvvImage.h和CvvImage.cpp添加到工程中。下载地址:原创 2013-09-10 11:27:23 · 1393 阅读 · 0 评论 -
图像代数运算:图像相加
代数运算-图像相加,就是对两幅图像的点之间进行加的运算。四种运算相应的公式为: s(x,y) = f(x,y) + g(x,y) 图像相加常用来求平均值去除addtive噪声或者实现二次曝光(double-exposure)。原创 2013-09-16 11:32:08 · 6074 阅读 · 1 评论 -
双摄像头测距的opencv实现
原文地址:(转)双摄像头测距的opencv实现作者:outman 虽然最近注意力已经不可遏制地被神经科学、大脑记忆机制和各种毕业活动吸引过去了,但是还是觉得有必要把这段时间双目视觉方面的进展总结一下。毕竟从上一篇博文发表之后,很多同仁发E-mail来与我讨论,很多原来的疑团,也在讨论和一步步的试验中逐渐解决了。 开篇之前,首先要感谢maxwellsdemon转载 2013-09-25 10:32:19 · 3686 阅读 · 0 评论 -
OpenCV矩阵运算
一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst,mask,dtype);scaleAdd(I1,scale,I2,dst);//dst=scale*I1+I2;2.减法absdiff(I1,I2,I);//I=|I1-I2|;A-B;A-转载 2013-10-28 15:18:29 · 1330 阅读 · 0 评论 -
reprojectImageTo3D函数讲解
函数名称:reprojectImageTo3D函数原型:void reprojectImageTo3D(InputArray disparity,OutputArray _3dImage,InputArray Q, bool handleMissingValues=false, int ddepth=-1 )函数作用:根据一组差异图像构建3D空间参数说明:disparity原创 2013-11-14 11:30:26 · 21336 阅读 · 12 评论 -
三维建模的相关网站或者博客参考集锦
下面是我在查找三维建模相关资料,总结的一些比较好或者有用三维建模方面的相关博客或者网站,供大家参考一下。 1、OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标 http://blog.csdn.net/chenyusiyuan/article/details/5961769原创 2013-10-24 14:26:48 · 1402 阅读 · 0 评论 -
OpenCV双摄像头摄像头定标与立体匹配遇到的问题
进过我的不懈努力,OpenCV双摄像头摄像头定标与立体匹配这个程序算是完成了,下面介绍下过程中遇到的问题。1、OpenCV棋盘格的定标问题。奇了怪了,每次重新定标,结果都是差异很大,网上查资料,说是MatLab标定箱效果比较好,这是下载地址:http://www.vision.caltech.edu/bouguetj/calib_doc/,使用方法参见此帖子;http://blog.lehu.原创 2013-11-14 15:00:13 · 2471 阅读 · 0 评论 -
Matlab摄像头标定得出的参数保存为xml
最近在做双摄像头的立体匹配,发现OpenCV定标效果不如MatLab的效果,于是用MatLab标定箱做标定,将得到的结果保存为xml,然后,提供给opencv使用。 MatLab标定箱做标定得到的结果如下图所示: 将结果保存为xml代码如下: // SaveMatLabCalibParam.cpp : 定义控制台应用程序的入口点。//#include "s原创 2013-11-08 20:03:51 · 8138 阅读 · 8 评论 -
OpenCV 2 轮廓检测与显示
一、函数讲解 1、findContours 函数说明:查找二值图像中的轮廓 函数原型:void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point原创 2013-08-05 15:27:23 · 3053 阅读 · 0 评论 -
OpenCV--绘图操作
一、绘图操作---画抛物线void parabola(IplImage *image, CvPoint pL, CvPoint pM, CvPoint pR, const CvScalar &color, int thickness){ double x1, y1, x2, y2, x3, y3, a, b, c; x1 = (double)pL.x; y1 =原创 2013-04-09 15:02:00 · 1554 阅读 · 0 评论 -
OpenCV学习--cvTermCriteria介绍
CvTermCriteria迭代算法的终止准则#define CV_TERMCRIT_ITER 1#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER#define CV_TERMCRIT_EPS 2typedef struct CvTermCriteria { int type; /* CV_TERMCRIT_ITER原创 2012-11-28 08:57:39 · 25733 阅读 · 2 评论 -
OpenCV学习--cvAddWeighted函数
函数介绍:vAddWeighted( const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst ); src1 第一个原数组. alpha 第一个数组元素的权值 src2 第二个原数组原创 2012-11-30 16:35:36 · 1976 阅读 · 0 评论 -
OpenCV学习--卡尔曼滤波器
1. 什么是卡尔曼滤波器(What is the Kalman Filter?)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获转载 2012-12-04 09:43:55 · 1202 阅读 · 0 评论 -
今天小结一下卡尔曼滤波
一直在看,一直不懂。 我这人学数学的毛病,就是需要非常细致的知道每个变量的含义,谁变谁不变必须清清楚楚告诉我,否则我就没有那个直觉。 anyway,从这篇文章入手吧:http://www.cs.unc.edu/~welch/kalman/media/pdf/kalman_intro_chinese.pdf所谓滤波,实际上是要去掉自己不想要的信号,保留想要的部分。一般来说,是把过程中转载 2012-12-04 14:03:06 · 2282 阅读 · 5 评论 -
OpenCV学习-常用的图像和矩阵操作函数
1.cvInRange和cvInRanges//函数原型:void cvInRange(const CvArr* src, const CvArr* lower, const CvArr* upper, CvArr* dst ); void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst );原创 2012-12-10 14:16:24 · 782 阅读 · 0 评论 -
OpenCV的人脸检测
1.源码如下// 111.cpp : Defines the entry point for the console application.//// face_test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "cv.h" #include "原创 2012-11-21 09:08:47 · 1559 阅读 · 0 评论 -
图像阈值分割---迭代算法
图像阈值分割---迭代算法1.处理流程: 1.为全局阈值选择一个初始估计值T(图像的平均灰度)。 2.用T分割图像。产生两组像素:G1有灰度值大于T的像素组成,G2有小于等于T像素组成。 3.计算G1和G2像素的平均灰度值m1和m2; 4.计算一个新的阈值:T = (m1 + m2) / 2; 5.重复步骤2和4,原创 2013-01-24 14:26:38 · 8211 阅读 · 0 评论 -
图像阈值分割---基本的全局阈值
由于阈值处理直观、实现简单且计算速度快,因此图像阈值处理在图像分割中处于核心地位,下面我会为大家介绍阈值处理的方法,并用OpenCV给出实现的代码。第一种:图像阈值分割---基本的全局阈值1. 处理流程: 1.为全局阈值选择一个初始估计值T(图像的平均灰度)。 2.用T分割图像。产生两组像素:G1有灰度值大于T的像素组成,G2有小于原创 2013-01-24 14:14:54 · 21335 阅读 · 2 评论 -
图像操作-图像反色操作
创建MFC工程,从文件中读入一幅图像,将之反色,然后显示原图片和反色之后的图片。/******************************************************************************* 函数名称 : MakeMat函数描述 : 使用OpenCV进行图像操作输入参数 : N/A 输出参数 : N/A 返 回值 : N原创 2012-11-14 13:37:38 · 4916 阅读 · 0 评论 -
OpenCV轮廓---多边形逼近
这是一个轮廓的多边形轮廓逼近函数,这个函数用指定精度逼近一个或多个 曲线,并返回逼近结果。首先,轮廓的多边形逼近指的是:使用多边形来近似表示一个轮廓。其次,多边形逼近的目的是为了减少轮廓的顶点数目。但多边形逼近的结果依然是一个轮廓,只是这个轮廓相对要粗旷一些。算法原理比较简单,核心就是不断找多边形最远的点加入形成新的多边形,直到最短距离小于指定的精度。 函数原型:CvSeq* cvA原创 2013-06-14 15:27:34 · 6376 阅读 · 0 评论 -
Kinect获取彩色图像(Kinect + OpenCV 2.3.0)
1.开发工具:Visual Studio 2010 + OpenCV2.3.0 使用的是Kinect SDK for Windows 1.7 版本原创 2013-07-08 13:58:23 · 2359 阅读 · 1 评论 -
VS 2010下一次性配置opencv(32位和64位相同)
1、下载OpenCV2.x.x superpackage(地址为:http://wiki.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5) 2、 配置环境变量 我的电脑--->右键--->属性--->高级--->环境变量--->在用户变量里,新建path和OPENCV两个项,如下图所示:原创 2013-12-10 10:07:47 · 2882 阅读 · 0 评论