OpenCV(三十三):计算轮廓面积与轮廓长度

这篇具有很好参考价值的文章主要介绍了OpenCV(三十三):计算轮廓面积与轮廓长度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.介绍轮廓面积与轮廓长度

       轮廓面积(Contour Area)是指轮廓所包围的区域的总面积。通常情况下,轮廓面积的单位是像素的平方。

        轮廓长度(Contour Length)又称周长(Perimeter),表示轮廓的闭合边界的长度。轮廓的边界可以看作是由一系列相邻像素点组成的连续路径,轮廓长度即为该路径的总长度。通常情况下,轮廓长度的单位是像素。

2.轮廓面积 contourArea()

double cv::contourArea ( InputArray contour,

bool    oriented = false

)

  • contour:轮廓的像素点
  • oriented;区域面积是否具有方向的标志,true表示面积具有方向性,false表示不具有方向性,默认值为不具有方向性的false。

3.轮廓长度arcLength()

double cv::arcLength ( InputArray curve,

bool    closed

)

  • curve:轮廓或者曲线的2D像素点。
  • closed:轮廓或者曲线是否闭合标志,true表示闭合。

4.示例代码

//计算轮廓面积与长度
void Contour_areaAndlength(Mat image){
    Mat gray,binary;
    cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化
    GaussianBlur(gray,gray,Size(9,9),2,2);//滤波
    threshold(gray,binary,170,255,THRESH_BINARY|THRESH_OTSU);//自适应二值化
    //轮廓检测
    vector<vector<Point>> contours;//轮廓
    vector<Vec4i> hierarchy;//存放轮廓结构变量
    findContours(binary,contours,hierarchy,RETR_TREE,CHAIN_APPROX_SIMPLE,Point());
    ostringstream ss;
    //输出轮廓面积
    for(int t=0;t<contours.size();t++){
        double areal= contourArea(contours[t]);
        ss <<"第"<< t<<"轮廓面积:"<<areal<<std::endl;
    }
    //输出轮廓长度
    for(int t=0;t<contours.size();t++){
        double length2= arcLength(contours[t],true);
        ss <<"第"<< t<<"轮廓长度:"<<length2<<std::endl;
    }
    LOGD("%s",ss.str().c_str());
}

OpenCV(三十三):计算轮廓面积与轮廓长度,Android之OpenCV,opencv,人工智能,计算机视觉,C++OpenCV(三十三):计算轮廓面积与轮廓长度,Android之OpenCV,opencv,人工智能,计算机视觉,C++文章来源地址https://www.toymoban.com/news/detail-706475.html

到了这里,关于OpenCV(三十三):计算轮廓面积与轮廓长度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV C++案例实战三十三《缺陷检测》

    本案例将使用OpenCV C++ 进行PCB印刷缺陷检测。目前缺陷检测算法可分为两大类: 一:基于模板匹配的缺陷检测 二:基于深度学习的缺陷检测,主要利用目标检测去识别缺陷部分。 本文算法主要是基于模板匹配算法进行缺陷检测,参考《基于差异模型的印刷标签缺陷检测算法

    2024年02月08日
    浏览(43)
  • python opencv之图像分割、计算面积

    以下代码是一个基于K-means聚类算法进行图像分割的实现。通过读取一个彩色图像,将其转化为二维数组形式。然后使用K-means算法对像素点进行聚类,聚类个数为7。根据聚类后的标签值对像素点进行着色,并创建掩膜图像。接着使用形态学开运算和闭运算去掉周围的绿色点和

    2024年02月06日
    浏览(37)
  • OpenCV 通过计算连通域面积过滤面积小的区域–Python

    代码参考:https://blog.csdn.net/u014264373/article/details/119486850 通过卷积神经网络预测图像的分割结果时,会发现分割外部出现了小面积的连通域。 常识告诉我们,这么小的物体一定不是我们的分割目标,因此,我们通过后处理的方法把它过滤掉,可以提高分割准确度。 这种小面积

    2024年02月08日
    浏览(57)
  • 利用OpenCV计算条形物体的长度

    本文提供了一种利用opencv计算条形物体长度的方法,思路新奇,实现简单,同时也提供了代码实现。 目录 0、前言 1、解决步骤 1.1 利用分割方法得到物体mask 1.2 提取骨骼线 1.3 计算骨架线长度  2、验证         在图像处理中,我们可能会遇到求一个线条长度的场景,比如

    2024年02月15日
    浏览(46)
  • Android OpenCV(三十一):图像形态学

    参数一:src,输入的待形态学操作图像,图像的通道数可以是任意的,但是图像的数据类型必须是 CV_8U , CV_16U , CV_16S , CV_32F 或 CV_64F 参数二:dst,形态学操作后的输出图像,与输入图像src具有相同的尺寸和数据类型 参数三:op,形态学操作类型的标志 标志位 值 作用 MO

    2024年04月10日
    浏览(48)
  • opencv计算植物叶面积_叶直径_叶周长_python

    项目简介 实习方法 源码分享 利用python自带的opencv库来计算植物叶片的叶面积、叶直径和叶周长,拍摄图片就可以直接得到真实的叶面积、叶直径和叶周长。 首先,我们需要这样拍摄一张植物的图片, 需要一个黑色的底板,一张A4纸,拍摄时需要将植物叶面放平,A4纸的四个

    2024年02月04日
    浏览(45)
  • Android OpenCV(四十三),Android程序员面试必备的知识点

    标志位 值 含义 GC_INIT_WITH_RECT 0 使用提供的矩形初始化状态和掩码。 之后根据算法进行迭代更新 GC_INIT_WITH_MASK 1 使用提供的掩码初始化状态。 可以组合使用GC_INIT_WITH_RECT和GC_INIT_WITH_MASK。 然后,使用GC_BGD自动初始化ROI之外的所有像素。 GC_EVAL 2 表示算法应该恢复 GC_EVAL_FREEZE_

    2024年04月09日
    浏览(50)
  • 【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

    在图像处理中,经常需要进行与物体轮廓相关的操作,比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息,通常使用OpenCV的findContours函数。然而,一旦获得轮廓信息后,可能会发现轮廓的顺序是无序的,如下图左侧所示: 在这个图中,每个轮廓都被找到,但它们的

    2024年02月03日
    浏览(41)
  • 16- OpenCV:轮廓的发现和轮廓绘制、凸包

    目录 一、轮廓发现 1、轮廓发现(find contour in your image) 的含义 2、相关的API 以及代码演示 二、凸包 1、凸包(Convex Hull)的含义 2、Graham扫描算法- 概念介绍 3、cv::convexHull 以及代码演示 三、轮廓周围绘制矩形和圆形框 一、轮廓发现 1、轮廓发现(find contour in your image) 的含义 轮

    2024年02月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包