
OpenCV
文章平均质量分 54
xueluowutong
研究方向六轴机械臂运动控制算法,智能控制算法,机器学习,计算机视觉和图像处理
展开
-
opencv学习之视频帧率
视频帧率指FPS值,FPS是测量用于保存、显示动态视频的信息数量。就是每秒中视频变化的画面数。原创 2018-07-09 13:27:47 · 2022 阅读 · 0 评论 -
OpenCV学习之使用createTrackbar函数和线性滤波函数实现手动调节图像的模糊程度
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;// 全局变量声明M...原创 2018-07-06 14:02:24 · 219 阅读 · 0 评论 -
OpenCV学习之膨胀与腐蚀
一、膨胀和腐蚀的作用: 1、消除噪声 2、分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素 3、寻找图像中的明显极大值区域或极小值区域 4、求出图像的梯度二、膨胀和腐蚀的效果膨胀和腐蚀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮...原创 2018-07-06 15:15:21 · 2003 阅读 · 0 评论 -
OpenCV学习之waitKey函数的使用方法
C++:int waitKey(int delay = 0)waitKey函数的功能是不断刷新图像,频率时间为delay,单位为ms返回值为当前键盘按键值。所以调用imshow()函数显示图像的时候,需要在后面加上while(waitKey(n)==key){},n为大于等于0的数即可,那么程序将会停在显示函数出,不运行其他代码,直到键盘值为key的响应之后。delay>0时,延迟“dela...原创 2018-07-06 15:45:50 · 3912 阅读 · 0 评论 -
VS中注释和取消注释的快捷键
最近使用VS2010+OpenCV进行图像处理,发现注释和取消注释的快捷键是组合键。注释: 先CTRL+K,然后CTRL+C取消注释:先CTRL+K,然后CTRL+U原创 2018-07-07 11:21:54 · 9917 阅读 · 0 评论 -
OpenCV学习之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系
一、各坐标系介绍图像处理、立体视觉经常涉及到世界坐标系、相机坐标系、图像坐标系和像素坐标系。如下图所示:世界坐标系是为了确定相机的位置,在双目视觉中一般将世界坐标系原点定在左相机、右相机或两者X轴方向的中点。下面是各坐标系之间的装换,换而言之,就是一个现实中的物体是如何在图像中成像的。二、世界坐标系和相机坐标系之间的转换从世界坐标系到相机坐标系,设计到物体的旋转和平移。绕着不同的坐标轴旋转不同的角...原创 2018-07-07 14:53:22 · 66589 阅读 · 18 评论 -
OpenCV学习之仿射变换 & SURF特征点描述合辑
放射变换相关函数warpAffine和getRotationMatrix2D,SURF(特征点描述)算法在OpenCV中进一步的体现与应用。一、仿射变换1.1 初识仿射变换仿射变换(Affine Transformation或Affine Map),又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,保持了二维图形的“平直性”(即:直线经过变换以后依然是直线)和“平行性”(即:...转载 2018-07-13 16:06:31 · 1013 阅读 · 0 评论 -
Opencv学习之VideoCapture类
VideoCapture类可以对视频进行读取操作以及调用摄像头,下面是该类的API。1、VideoCapture类的构造函数:C++: VideoCapture::VideoCapture();C++: VideoCapture::VideoCapture(const string& filename);C++: VideoCapture::VideoCapture(int devic...原创 2018-07-07 17:32:49 · 1211 阅读 · 0 评论 -
OpenCV学习之FLANN匹配器
FLANN是快速最近邻搜索包(Fast_Library_for_Approximate_Nearest_Neighbors)的简称。它是一个对大数据集合高维特征进行最近邻搜索算法集合。在面对大数据集时,它的效果要好与BFMatcher。#include <iostream>#include "opencv2/core/core.hpp"#include "opencv2/featu...转载 2018-07-14 13:47:40 · 2087 阅读 · 0 评论 -
编辑距离算法详解:Levenshtein Distance算法
Levenshtein Distance算法,又叫Edit Distance算法,是指两个字符串之间,由一个转成另一个所需要的最小 编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。 算法基本原理:假设我们可以使用d[i,j]个步骤(可以用一个二维数组保存这个值),表示将串s[1...i]转换...转载 2019-01-10 16:33:55 · 13572 阅读 · 0 评论 -
Opencv RotatedRect类中的points、angle、width和height详解
在Opencv中的图像处理中,经常要用到minAreaRect()函数求最小外接矩形,该函数的返回值就是一个RotatedRect类对象。RotatedRect类定义如下:class CV_EXPORTS RotatedRect{public: //! various constructors RotatedRect(); RotatedRect(cons...原创 2019-01-08 13:36:56 · 2649 阅读 · 0 评论 -
学习Opencv2.4.9(四)---SVM支持向量机
先来看一下什么是SVM(支持向量机)1、SVM是一种训练机器学习的算法,可以用于解决分类和回归问题,同时还使用了一种称之为kernel trick(支持向量机的核函数)的技术进行数据的转换,然后再根据这些转换信息,在可能的输出之中找到一个最优的边界(超平面)。简单来说,就是做一些非常复杂的数据转换工作,然后根据预定义的标签或者输出进而计算出如何分离用户的数据。支持向量机方法是建立在统计学习理...转载 2019-01-22 13:44:48 · 658 阅读 · 0 评论 -
OpenCV学习之createTrackbar函数详解
createTrackbar函数作用:可以在显示图像的窗口快速创建一个滑动控件,用于手动调节阈值,效果非常直观。函数定义如下:int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, Trackba...原创 2018-07-06 13:04:21 · 1464 阅读 · 0 评论 -
OpenCV学习之绘制基本几何图形
1.Circle()void circle(Mat& img, Point center, intradius, const Scalar& color, int thickness=1, int lineType=8, int shift=0);Parameters:img:要画圆的图像center:圆心坐标radius:半径color:圆边框颜...原创 2018-07-05 13:56:29 · 623 阅读 · 0 评论 -
OpenCV学习之cvRound()、cvFloor()、cvCeil()理解
cvRound(float a):将浮点数a四舍五入取整,即返回跟参数最接近的整数值。cvFloor(float ,a) :将浮点数a向下取整,即返回不大于参数的最大整数。cvCeil(float a) :将浮点数a向上取整,即返回不小于参数的最小整数...原创 2018-07-05 10:54:58 · 2329 阅读 · 0 评论 -
cv::imread读不出图片的解决办法
imread()函数无法读取图片的原因测试程序:int main(){ // 读入一张图片 Mat img = imread("longmao.jpg"); if(img.empty()) { cout << "Can't read image" << endl; return -1; } // 创建一个名为“龙猫”窗口 namedWindow("longmao"); ...原创 2018-07-03 09:45:10 · 22536 阅读 · 14 评论 -
OpenCV2.4.8中图像叠加和混合
一、创建ROI区域ROI区域在OpenCV中就是Rect(矩形)// 定义一个Mat类型,用于存放,图像的ROI(图像重合) Mat imageROI; // 方法一 imageROI = image(Rect(50,50,logo.cols,logo.rows));Rect()原形:Rect(int_x,int_y,int_widtht,int_heigh); 参...原创 2018-07-03 16:25:15 · 269 阅读 · 0 评论 -
Opencv学习之车牌识别的区域定位
#include <iostream>#include <vector>#include <opencv2\core\core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;u...原创 2018-07-10 14:55:33 · 1165 阅读 · 0 评论 -
OpenCV中利用sobel算子进行边缘检测
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream> #include <cmath>using namespace cv;using namespace std;bool sobelEdge(Mat& ...原创 2018-07-10 16:11:36 · 1329 阅读 · 0 评论 -
OpenCV学习之形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽合辑
一、开运算(Opening Operation),其实就是先腐蚀后膨胀的过程,数学表达式 dst = open(src,element) = dilate(erode(src,element))开运算可以用来消除小物体、在纤细点处分离物体、平滑较大物体的边界同时并不明显改变其面积。二、闭运算(Closing Operation)先膨胀后腐蚀的过程称为闭运算,其数学表达...转载 2018-07-11 10:45:55 · 1651 阅读 · 0 评论 -
OpenCV学习之contourArea函数的理解
1、contourArea()函数的作用:主要用于计算图像轮廓的面积。2、double contourArea(InputArray contour,bool oriented=false) 参数: InputArray contour : 输入的点,一般是图像的轮廓点 bool oriented = false : 默认值为fals...原创 2018-07-04 14:39:20 · 31639 阅读 · 10 评论 -
OpenCV学习之convexHull函数的理解
1、convexhull函数的作用: 计算出图像的凸包,根据图像的轮廓点,通过函数convexhull转化成凸包的点点坐标, 从而画出图像的凸包。2、convexHull函数的调用形式 void convexHull(InputArray points,OutputArray hull,bool clockwise = false, ...原创 2018-07-04 15:00:58 · 14852 阅读 · 0 评论 -
Opencv学习之Point、Size、Rect和Scalar基本结构
一、Point基本结构Point:2维整数点类别,成员有x和y,若输入浮点数的话,则四舍五入整数,下面为创建Point 的方式。 Point(int x,int y) // 创建方式 Point pt1(20,30); Point pt2; pt2.x = 20; pt2.y = ...原创 2018-07-04 16:48:22 · 1139 阅读 · 0 评论 -
Opencv学习之fillPoly函数:绘制多边形并对其填充
fillPoly(img,ppt,npt,1,Scalar(255,255,255),lineType);函数参数: 1、多边形将被画到img上 2、多边形的顶点集为ppt 3、绘制的多边形顶点数目为npt 4、要绘制的多边形数量为1 5、多边形的颜色定义为Scarlar(255,255,255),即RGB的值为白色 int lineType=0; //创建一些点 P...原创 2018-07-04 17:28:19 · 42560 阅读 · 0 评论 -
Opencv学习之漫水填充算法FloodFill
一、漫水填充法的基本思想漫水填充,简单的说,就是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色,这是个非常有用的功能,经常用来标记或者分离图像的一部分进行处理或分析。漫水填充也可以用来从输入图像获取掩码区域,掩码区域会加速处理过程,或者只处理掩码指定的像素点。二、floodFill()函数详解第一个版本的floodFill:int floodFill(InputOutArray ima...原创 2018-07-11 17:38:06 · 595 阅读 · 0 评论 -
OpenCV学习之Mat::at()理解
Mat类中的at方法作用:用于获取图像矩阵某点的值或改变某点的值。对于单通道图像的使用方法: image.at<uchar>(i,j) = 255;对于RGB三通道图像的使用方法: image.at<Vec3b>(i,j)[0] = 255; image.at<Vec3b>(i,j)[1] = 25...原创 2018-07-05 10:36:38 · 35547 阅读 · 2 评论 -
opencv2\flann\lsh_table.h(266): error C2059: 语法错误:“::”
1. 错误输出 c:\program files\opencv-2.4.4\opencv\build\include\opencv2\flann\lsh_table.h(266): error C2059: 语法错误:“::” ./zlibrary/ui/src/win32/w32widgets/W32VBorderBox.cpp(114) : error C2589: “(”...原创 2019-01-23 08:57:53 · 481 阅读 · 0 评论