
OpenCV
文章平均质量分 91
小白的进阶
立体视觉,机器学习,Python,搜索
展开
-
OpenCV中的RANSAC详解
本文将openCV中的RANSAC代码全部挑选出来,进行分析和讲解,以便大家更好的理解RANSAC算法。代码我都试过,可以直接运行。在计算机视觉和图像处理等很多领域,都需要用到RANSAC算法。openCV中也有封装好的RANSAC算法,以便于人们使用。关于RANSAC算法的一些应用,可以看我的另一篇博客:利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求转载 2016-06-15 16:05:08 · 34796 阅读 · 8 评论 -
sprintf()函数详解
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format转载 2017-02-27 13:44:25 · 1102 阅读 · 0 评论 -
Opencv——cvRodrigues2()函数
处理三维旋转问题时,通常采用旋转矩阵的方式来描述。一个向量乘以旋转矩阵等价于向量以某种方式进行旋转。除了采用旋转矩阵描述外,还可以用旋转向量来描述旋转,旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换。 算法过程如下:式中,norm为求向量的模。反变换也可以很容易的通过如下公式实现:转载 2017-02-15 10:59:22 · 15635 阅读 · 4 评论 -
opencv 最小二乘拟合平面
//Ax+by+cz=D void cvFitPlane(const CvMat* points, float* plane){ // Estimate geometric centroid. int nrows = points->rows; int ncols = points->cols; int type = points->t转载 2017-06-22 13:31:28 · 3613 阅读 · 2 评论 -
OpenCV中的findContours函数参数详解
OpenCV中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据结构是怎样的?hierarchy到底是什么鬼?Point()有什么用?先从findContours函数原型看起:转载 2017-07-30 18:02:28 · 137295 阅读 · 19 评论 -
OpenCV之meanshift分割详解
1. 原理 用meanshift做图像平滑和分割,其实是一回事。其本质是经过迭代,将收敛点的像素值代替原来的像素值,从而去除了局部相似的纹理,同时保留了边缘等差异较大的特征。 OpenCV中自带有基于meanshift的分割方法pyrMeanShiftFiltering()。由函数名pyrMeanShiftFiltering可知,这里是将meansh转载 2017-07-30 18:03:54 · 12625 阅读 · 1 评论 -
OpenCV函数threshold的使用
在OpenCV中,threshold用来进行对图像(二维数组)的二值化阈值处理通过查找opencv在线文档,发现存在很多函数:其函数原型如下:1. C版本的:函数原型:void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_va转载 2017-07-30 18:04:23 · 1300 阅读 · 0 评论 -
BWLABEL函数的C++实现
实验中需要用到区域联通的算法,就是类似于matlab中bwlabel的函数。网上找了找c++源码未果,bwlabel-python版用python描述了matlab中的实现方法,但是最后对标签的处理部分并未看明白,故自己用c++实现了一个。先直接看bwlabel函数代码:cv::Mat bwlabel(const cv::Mat in, int * num, const int mode){转载 2017-12-25 17:04:51 · 1895 阅读 · 3 评论 -
findContours轮廓提取函数与drawContours轮廓绘制函数的使用
OpenCV中函数findContours()用于中对象的轮廓,有两种形式:第一种:void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset=Point());原创 2017-12-18 17:04:20 · 2956 阅读 · 0 评论 -
Visual Studio性能分析
(1)VS2013中某一工程-->分析(N)-->性能和诊断(F)(2)在可以用工具下选择CPU使用率,针对不同需求进行选择,对应可选项下均有对此选择的解释说明。然后点击“开始”(3)生成如下的分析报告,左侧箭头指向的小三角是可以进一步打开的,右侧箭头指向的即为每个函数所占用CPU的的百分比 (4)点击红色框内的“创建详细的报告...”(5)下图为得到的详细报告,有原创 2018-01-05 15:14:43 · 5124 阅读 · 0 评论 -
解决VS+opencv中Debug版本与Release版本的lib切换的问题
参考方案1:参考来源:http://blog.youkuaiyun.com/xiaohuh421/article/details/7476485#ifdef _DEBUG#pragma comment(lib,"..\\debug\\LedCtrlBoard.lib")#else#pragma comment(lib,"..\\release\\LedCtrlBoard.lib")#e原创 2018-01-08 10:16:58 · 1493 阅读 · 0 评论 -
OpenMP的配置及简单使用
1.VS配置OpenMP项目属性 --> C/C++ --> 语言 --> OpenMP支持,下拉菜单选择“是(/openmp)”2.简单使用(1)测试本机是几核的。添加如下说明本计算机是8核,或者说是8线程的。代码#include#includeint main(){ std::cout << "parallel begin:\n原创 2018-01-10 10:11:36 · 23056 阅读 · 3 评论 -
Opencv 两个视频同时显示
以下是将两个视频同时显示在一个框内:#include #include #include #include #include void Show_two_videos(){IplImage *newFrame = NULL;IplImage *frame1 = NULL;IplImage *frame2 = NULL;CvCaptu原创 2017-02-26 20:00:15 · 4921 阅读 · 0 评论 -
Opencv 视频转成图片+图片转成视频
以下代码我测试了图片转成视频,视频转成图片暂时没有测试#include #include #include #include #include #define NUM_FRAME 200using namespace std;using namespace cv;void Video_to_image(char* filename原创 2017-02-26 15:19:10 · 769 阅读 · 1 评论 -
Opencv中的双目标定和校正
双目摄像头定标不仅要得出每个摄像头的内部参数,还需要通过标定来测量两个摄像头之间的相对位置(即右摄像头相对于左摄像头的三维平移 t 和旋转 R 参数)。图6要计算目标点在左右两个视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来。然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,我们可以利用极线约束使得对应点的匹配由二维搜索降为一维搜索。转载 2017-02-15 16:07:26 · 8604 阅读 · 0 评论 -
VS2013代码调试:如何避免调试时加载符号
在利用VS2013进行代码调试时,当电脑接入网络后系统会自动从Microsoft 符号服务器加载PDB符号文件。此加载符号过程使得调试变得非常慢。那么如何避免VS2013调试时加载符号呢?方法步骤如下:1.用VS2013打开代码文件,按下F5进行调试,可以看到系统会自动加载符号,而且此调试过程较为缓慢。2.关闭调试,打开“工具”-“选项”-“调试”,在调试中找到符号选项原创 2016-06-01 19:53:19 · 13017 阅读 · 2 评论 -
VS2013+OpenCV249+Windows10环境配置
1.安装opencv2.4.9,解压,请务必记住自己解压的路径。我自己的路径为例E:\opencv2.4.92. 配置环境变量右击“此电脑”——单击“属性”——“高级系统设置”——“环境变量”添加“用户变量”:(1) 添加opencv变量,值为E:\opencv2.4.9\opencv\build (2)添加PATH变量,值为E:\opencv2.4.9\opencv原创 2016-03-14 14:54:10 · 11560 阅读 · 10 评论 -
OpenCV,计算两幅图像的单应矩阵
平面射影变换是关于其次3维矢量的一种线性变换,可以使用一个非奇异的3×33×3矩阵H表示,X′=HXX′=HX,射影变换也叫做单应(Homography)。计算出两幅图像之间的单应矩阵H,那么应用这个关系可以将一个视图中的所有点变换到另一个视图中。上图,最右边图像是将最左边图像进行了一次射影变换,变换到中间图像视图后的图像。使用OpenCV可以调用库函数findHo原创 2016-06-13 16:19:28 · 10774 阅读 · 0 评论 -
MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC
一,问题描述MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令error LNK2001: unresolved external symbol _Wi转载 2016-06-01 09:33:47 · 1222 阅读 · 0 评论 -
基于MeanShift的目标跟踪算法及实现
这次将介绍基于MeanShift的目标跟踪算法,首先谈谈简介,然后给出算法实现流程,最后实现了一个单目标跟踪的MeanShift算法【matlab/c两个版本】 csdn贴公式比较烦,原谅我直接截图了… 一、简介 首先扯扯无参密度估计理论,无参密度估计也叫做非参数估计,属于数理统计的一个分支,和参数密度估计共同构成了概率密度估计方法。参数密度估计方转载 2016-05-31 19:29:22 · 9318 阅读 · 3 评论 -
SSE2的一些常用指令集介绍
开门见山,前段时间学习OpenCV的FAST算法,中间有很多SSE2的指令集,深受其惑。下面我把学习过程中学到的一些指令集介绍给大家,希望能对大家有所帮助!__m128i被称为128bits的整数,对其进行赋值时,可以调用__m128i_mm_set1_epi8或者__m128i_mm_set1_epi816等,前者就是把128bits设置为16个8bits的整数值,后一个例子就是把128bi原创 2016-03-14 14:44:41 · 17022 阅读 · 3 评论 -
OpenCV参考手册之Mat类详解
Mat::~MatMat的析构函数。C++: Mat::~Mat()析构函数调用Mat::release()。Mat::operator =提供矩阵赋值操作。C++: Mat& Mat::operator=(const Mat& m)C++: Mat& Mat::operator=(const MatExpr_Base& expr)C转载 2016-04-19 10:18:20 · 883 阅读 · 0 评论 -
opencv源码解析之——高斯滤波GaussianBlur()
其函数声明为: void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT ) ; 功能:对输入的图像src进行高斯滤波后用dst输出。 参数:src和dst当然原创 2016-04-19 10:22:37 · 12842 阅读 · 2 评论 -
立体视觉标定和校正
1.读取左右相机图片序列双目相机的图片序列放在Demon的路径下,左右相机的图像的名字分别存放在两个txt文件中,程序分别通过这两个txt文件读取对应的图片序列。主注意:我们假设已经将摄像机排列好了,其图像扫描线是粗略物理对齐,从而使得每台摄像机本质上都具有相同的视场。2.提取图片角点,并分别标定左右相机内参矩阵和畸变向量调用cvFindChessboard原创 2017-01-16 17:20:59 · 7486 阅读 · 2 评论 -
Opencv相机标定和三维重建
针孔相机模型和变形这一节里的函数都使用针孔摄像机模型,这就是说,一幅视图是通过透视变换将三维空间中的点投影到图像平面。投影公式如下:或者这里(X, Y, Z)是一个点的世界坐标,(u, v)是点投影在图像平面的坐标,以像素为单位。A被称作摄像机矩阵,或者内参数矩阵。(cx, cy)是基准点(通常在图像的中心),fx, fy是以像素为单位的焦距。所以如果因为某些因素对原创 2017-02-15 09:45:28 · 9514 阅读 · 0 评论 -
opencv图像像素值读取
说到图像像素,肯定要先认识一下图像中的坐标系长什么样。 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。(OpenCV中有些数据结构的坐标原点是在图片的左下角,可以设置的)。 2. 在使用image.at(x1, x2)来访问图像中点的值的时候,x1并不是图片中对应点的x轴坐标原创 2016-08-26 09:28:46 · 11625 阅读 · 0 评论