opencv 轮廓排序

vector>contours ;
vectorhierarchy;

//找到轮廓
findContours(image, contours, hierarchy,CV_RETR_CCOMP ,CV_CHAIN_APPROX_SIMPLE );//查找轮廓//CV_RETR_EXTERNAL 外轮廓
//CV_CHAIN_APPROX_NONE //轮廓上所有点
//CV_RETR_CCOMP 所有轮廓
//CV_CHAIN_APPROX_SIMPLE //轮廓上部分点

//轮廓排序
static inline bool ContoursSortFun(vector contour1,vector contour2)
{
return (cv::contourArea(contour1) > cv::contourArea(contour2));
}

//调用轮廓排序的函数
std::sort(contours.begin(),contours.end(),ContoursSortFun);

//画轮廓
drawContours(resultcut, contours, 3, 0,CV_FILLED , 8, hierarchy, 0, Point());
//CV_FILLED//把内轮廓填充
//3,第3个轮廓
//0,黑色

原文地址:https://www.cnblogs.com/rjjhyj/p/11479834.html

时间: 2024-10-05 05:50:11

opencv 轮廓排序的相关文章

OpenCV —— 轮廓

把检测出的边缘像素组装成轮廓  --  cvFindContours   OpenCV 使用内存存储器来统一管理各种动态对象的内存.内存存储器在底层被实现为一个有许多相同大小的内存块组成的双向链表 内存储器可以通过四个函数访问 : cvCreateMemStorage(创建一个内存存储器,0采用默认大小)    cvReleaseMemStorage   cvClearMemStorage(和通常释放内存的函数区别 -- 只是将释放的内存返还给内存存储器,而并不返还给系统 -- 可以重复使用内存

[转载]转载,opencv轮廓查找,匹配以及特征提取,实例

已有 9450 次阅读 2012-3-15 20:50 |系统分类:科研笔记|关键词:opencv 轮廓 轮廓的查找.表达.绘制.特性及匹配(How to Use Contour? Find, Component, Construct, Features & Match) 作者:王先荣 前言    轮廓是构成任何一个形状的边界或外形线.前面讲了如何根据色彩及色彩的分布(直方图对比和模板匹配)来进行匹配,现在我们来看看如何利用物体的轮廓.包括以下内容:轮廓的查找.表达方式.组织方式.绘制.特性.匹

OpenCV轮廓检测,计算物体旋转角度

效果还是有点问题的,希望大家共同探讨一下 // FindRotation-angle.cpp : 定义控制台应用程序的入口点. // // findContours.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <vector> #include <opencv2/opencv.hpp> #include <opencv2/core/core.h

Opencv轮廓计数(学习)

#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/xfeatures2d.hpp> using namespace std;using namespace cv;using namespace cv::xfeatures2d; Mat img1, img2, img3, img4, img5, img6, img_result, img_gray1, img_gray2, img_gray

OpenCV 轮廓矩

一.概述 我们在实际中如何应用这些轮廓呢?比如,有两个轮廓如何进行比较匹配,或者如何比较一个轮廓和一个抽象模板.比较两个轮廓最简洁的方式是比较它们的轮廓矩.矩是通过对轮廓上所有点进行积分运算(或者认为是求和运算)而得到的一个粗略特征. 二.矩及Hu矩的结构体 typedef struct CvMoments { double  m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;   /* spatial moments */ double  mu2

OpenCV 轮廓的凸性

一.概括 理解物体形状或轮廓的另外一种有用的方法是计算一个物体的凸包(convex hull)然后计算其凸缺陷(convexity defects).很多复杂物体的特性能很好的被这种缺陷表现出来. 二.相关函数 1.发现点集的凸外形 CvSeq* cvConvexHull2( const CvArr* input, void* hull_storage=NULL, int orientation=CV_CLOCKWISE, int return_points=0 ); points 2D 点集的

OpenCV 轮廓基本特征

一.概述 我们通过cvFindContours( )函数获取得图像轮廓有何作用呢?一般来说,我们对轮廓常用的操作有识别和处理,另外相关的还有多种对轮廓的处理,如简化或拟合轮廓,匹配轮廓到模板,等等. 我们在轮廓处理中经常需要对轮廓变化一些特征进行概括,比如长度或者一些反映轮廓整体大小的度量.另外轮廓矩也是概括轮廓的特征的重要方法. 二.常见特征函数 1.多边形逼近 CvSeq* cvApproxPoly( const void* src_seq, int header_size, CvMemSt

opencv 轮廓点的坐标大小的修改

std::vector> allcontourpoint; //点集的数据集 for(int i=0; iopencv 轮廓点的坐标大小的修改 原文地址:https://www.cnblogs.com/rjjhyj/p/11479774.html

opencv 轮廓的外围多边形提取或者删除最小最大轮廓

std::vector resultpoly; cv::approxPolyDP(contours[0], resultpoly,4, true);//轮廓contours[0] ,resultpoly多边形的点集 cv::polylines(src, resultpoly, true, 150, 1);//画多边形的外轮廓 cv::imshow("detected polyLines", src);//显示多边形的外轮廓 //相关链接https://www.cnblogs.com/d