- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章OpenCV计算轮廓长度/周长和面积由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享了OpenCV计算轮廓长度/周长和面积的具体代码,供大家参考,具体内容如下 。
轮廓面积是指每个轮廓中所有的像素点围成区域的面积,单位为像素.
1
|
double
contourArea( InputArray contour,
bool
oriented =
false
);
|
函数的返回值是统计轮廓面积的结果,数据类型为double。函数第一个参数表示轮廓的像素点,数据类型为vector或者Mat,相邻的两个像素点之间逐一相连构成的多边形区域即为轮廓面积的统计区域。连续的三个像素点之间的连线有可能在同一条直线上,因此为了减少输入轮廓像素点的数目,可以只输入轮廓的顶点像素点,例如一个三角形的轮廓,轮廓中可能具有每一条边上的所有像素点,但是在统计面积时可以只输入三角形的三个顶点。函数第二个参数是区域面积是否具有方向的标志,参数为true时表示统计的面积具有方向性,轮廓顶点顺时针给出和逆时针给出时统计的面积互为相反数;参数为false时表示统计的面积不具有方向性,输出轮廓面积的绝对值。 。
1
|
double
arcLength( InputArray curve,
bool
closed );
|
该函数能够统计轮廓或者曲线的长度,函数返回值为统计长度,单位为像素,数据类型为double。函数的第一个参数是轮廓或者曲线的2D像素点,数据类型为vector或者Mat。函数的第二个参数是轮廓或者曲线是否闭合的标志,true表示闭合.
函数统计的长度是轮廓或者曲线相邻两个像素点之间连线的距离,例如计算三角形三个顶点A、B和C构成的轮廓长度时,并且函数第二个参数为true时,统计的长度是三角形三个边AB、BC和CA的长度之和;当参数为false时,统计的长度是由A到C三个点之间依次连线的距离长度之和,即AB和BC的长度之和.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
//
// Created by smallflyfly on 2021/6/22.
//
#include "opencv2/opencv.hpp"
#include <iostream>
using
namespace
std;
using
namespace
cv;
int
main() {
Mat im = imread(
"rice.jfif"
);
resize(im, im, Size(0, 0), 0.5, 0.5);
Mat gray;
cvtColor(im, gray, CV_BGR2GRAY);
Mat imBin;
threshold(gray, imBin, 125, 255, THRESH_BINARY);
vector<vector<Point>> contours;
findContours(imBin, contours, RETR_EXTERNAL, CHAIN_APPROX_NONE);
drawContours(im, contours, -1, Scalar(255, 0, 255));
for
(
int
i = 0; i < contours.size(); ++i) {
double
area = contourArea(contours[i]);
double
length = arcLength(contours[i],
true
);
cout <<
"area: "
<< area <<
" "
<<
"length: "
<< length << endl;
}
imshow(
"im"
, im);
waitKey(0);
destroyAllWindows();
return
0;
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/B08370108/article/details/118106598 。
最后此篇关于OpenCV计算轮廓长度/周长和面积的文章就讲到这里了,如果你想了解更多关于OpenCV计算轮廓长度/周长和面积的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!