如何获取轮廓(连通域)的面积、周长、矩形度、圆形度、宽长比、周径比等形状描述符? | 您所在的位置:网站首页 › 圆形的公式面积周长 › 如何获取轮廓(连通域)的面积、周长、矩形度、圆形度、宽长比、周径比等形状描述符? |
博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 目录 前言1、轮廓面积获取函数2、轮廓周长获取函数3、轮廓圆形度计算4、矩形度计算5、宽长比计算6、周径比计算总结:最终示例 前言之前学习了连通域和轮廓的知识,其中要框定出自己想要的目标物体,我们往往需要用一些if,else语句用来筛选。 这里整理一下常用的筛选条件。 先验知识链接: https://blog.csdn.net/qq_42604176/article/details/105588018 1、轮廓面积获取函数输入当前轮廓点集,输出该轮廓点集的面积 area = contourArea(contours[t]);//计算轮廓面积 2、轮廓周长获取函数输入当前轮廓点集,第二个参数:bool closed:表示轮廓是否封闭的 输出该轮廓点集的周长 len = arcLength(contours[t], true);//计算轮廓周长 3、轮廓圆形度计算原本计算公式: 注意点: minrect.size是个数组,表述的是尺寸即:width,height 5、宽长比计算宽长比:最小外接矩形的长轴与短轴的比值 RotatedRect rbox = minAreaRect(contours[i]); fabs(rbox.size.width * 1.0 / rbox.size.height - 1) minrect.size.width ? minrect.size.height : minrect.size.width); 总结:最终示例 #include #include #include "windows.h" #include #include #include //#include "My_ImageProssing_base.h" #define WINDOW_NAME "【程序窗口】" //为窗口标题定义的宏 using namespace cv; using namespace std; RNG g_rng(12345); int main() { //改变控制台字体颜色 system("color 02"); //读取图像 Mat src_image = imread("D:\\opencv_picture_test\\阈值处理\\硬币.png", 1); //出错判断 if (!src_image.data) { cout line(result_image, P[j], P[(j + 1) % 4], color, 1); } cout |
CopyRight 2018-2019 实验室设备网 版权所有 |