opencv
文章平均质量分 83
leehungxd
这个作者很懒,什么都没留下…
展开
-
构造函数方法创建Mat对象
Mat是一个非常优秀的图像类,它同时也是一个通用的矩阵类,可以用来创建和操作多维矩阵。Mat类提供了一系列构造函数,可以方便的根据需要创建Mat对象。常用的构造函数有: 1、Mat::Mat() 无参数构造方法; 2、Mat::Mat(int rows, int cols, int type) 创建行数为 rows,列数为 col,类型为 type 的图像; 3、Ma原创 2015-06-05 19:41:29 · 3391 阅读 · 0 评论 -
SURF特征点检测--SurfFeatureDetector、SurfDescriptorExtractor和FlannBasedMatcher
一、关于SURF算法SURF,我们简单介绍一下,英语全称为SpeededUp Robust Features,直译的话就是“加速版的具有鲁棒性的特征“算法,由Bay在2006年首次提出。SURF是尺度不变特征变换算法(SIFT算法)的加速版。一般来说,标准的SURF算子比SIFT算子快好几倍,并且在多幅图片下具有更好的稳定性。SURF最大的特征在于采用了harr特征以及积分图像的概念,这大大加原创 2015-06-11 23:24:19 · 17858 阅读 · 2 评论 -
亚像素级的角点检测--goodFeaturesToTrack()
goodFeaturesToTrack()作用:检测一张图片上的强壮的角点。形式:void goodFeaturesToTrack(InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask=noArray(), int blo原创 2015-06-10 00:19:04 · 2478 阅读 · 0 评论 -
定制化创建角点检测子--cornerEigenValsAndVecs()和cornerMinEigenVal()
cornerEigenValsAndVecs()作用:计算图像块的特征值和特征向量用于角点检测。形式:void cornerEigenValsAndVecs(InputArray src, OutputArray dst, int blockSize, int ksize, int borderType=BORDER_DEFAULT );参数:src:输入单通道8位或浮点图像;原创 2015-06-10 00:10:43 · 4360 阅读 · 0 评论 -
多边形测试--pointPolygonTest()
pointPolygonTest()作用:进行轮廓中点的检测。形式:double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist);参数:contour:输入的轮廓;pt:轮廓中检测的点;measureDist:如果是true:估计点到最近轮廓边缘的距离,否则检查点是否在轮廓中。原创 2015-06-07 16:36:51 · 2554 阅读 · 0 评论 -
为轮廓创建可倾斜的边界框和椭圆-- minAreaRect()和fitEllipse()
minAreaRect()作用:找到一个能包围输入二维点集的面积最小的任意方向矩形。形式:minAreaRect(InputArray points);参数:points:输入二维点集,并用std::vector or Mat存储;fitEllipse()作用:寻找一个适合的围绕二维点集的椭圆。形式:fitEllipse(InputArray points);参原创 2015-06-06 21:58:22 · 2556 阅读 · 0 评论 -
创建包围轮廓的矩形和圆形边界框--boundingRect()、minEnclosingCircle()和approxPolyDP()
boundingRect()作用:计算点集的右上边框。形式:boundingRect(InputArray points);参数:points:输入二维点集,并用std::vector or Mat存储;minEnclosingCircle()作用:找到包围二维点集面积最小的圆。形式:void minEnclosingCircle(InputArray poin原创 2015-06-06 21:48:34 · 3193 阅读 · 0 评论 -
为程序界面添加滑动条--createTrackbar()
createTrackbar( )作用:创建一个滚动条并把它附加到特定的窗口中。形式:int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0);参数: tra原创 2015-06-07 20:33:57 · 1726 阅读 · 0 评论 -
轮廓矩-- moments()、contourArea()和 arcLength()
moments()作用:计算一个多边形或栅格化形状的多达3阶的所有矩。形式:Moments moments(InputArray array, bool binaryImage=false );参数:array:栅格图像或者二维点列;binaryImage:如果是true:所有非零值图像像素被置1,该参数仅用于图像;moments:输出的矩;cont原创 2015-06-06 23:02:26 · 6223 阅读 · 0 评论 -
轮廓提取--findContours()和drawContours()
一、函数findContours()功能:在二值图像中寻找轮廓结构:void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point())image :输入的 8-比特、原创 2015-06-06 16:19:34 · 1935 阅读 · 0 评论 -
计算物体的凸包--convexHull()
convexHull()作用:就算二维点集的凸包。形式:void convexHull(InputArray points,OutputArray hull,bool clockwise=false, bool returnPoints=true );参数:points:以std::vector or Mat的形式输入二维点集;hull:输出的凸包;clockwise:原创 2015-06-06 17:09:09 · 966 阅读 · 0 评论 -
平面物体检测的主要算法流程
主要用于使用 features2d 和 calib3d 模块来检测场景中的已知平面物体。步骤:1、读入两幅图像;Mat img1 = imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE);Mat img2 = imread(argv[2], CV_LOAD_IMAGE_GRAYSCALE);2、检测两幅图像的关键点(尺度旋转都不发生变化的关键点);原创 2015-06-13 11:16:30 · 2184 阅读 · 0 评论