欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV計算輪廓長度/周長和面積

 更新時間:2021年06月23日 09:46:58   作者:我有一個夢想  
這篇文章主要為大家詳細介紹了OpenCV計算輪廓長度/周長和面積,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了OpenCV計算輪廓長度/周長和面積的具體代碼,供大家參考,具體內(nèi)容如下

輪廓面積

輪廓面積是指每個輪廓中所有的像素點圍成區(qū)域的面積,單位為像素。

double contourArea( InputArray contour, bool oriented = false );
  • contour:輪廓的像素點
  • oriented:區(qū)域面積是否具有方向的標志,true表示面積具有方向性,false表示不具有方向性,默認值為不具有方向性的false。

函數(shù)的返回值是統(tǒng)計輪廓面積的結(jié)果,數(shù)據(jù)類型為double。函數(shù)第一個參數(shù)表示輪廓的像素點,數(shù)據(jù)類型為vector或者Mat,相鄰的兩個像素點之間逐一相連構(gòu)成的多邊形區(qū)域即為輪廓面積的統(tǒng)計區(qū)域。連續(xù)的三個像素點之間的連線有可能在同一條直線上,因此為了減少輸入輪廓像素點的數(shù)目,可以只輸入輪廓的頂點像素點,例如一個三角形的輪廓,輪廓中可能具有每一條邊上的所有像素點,但是在統(tǒng)計面積時可以只輸入三角形的三個頂點。函數(shù)第二個參數(shù)是區(qū)域面積是否具有方向的標志,參數(shù)為true時表示統(tǒng)計的面積具有方向性,輪廓頂點順時針給出和逆時針給出時統(tǒng)計的面積互為相反數(shù);參數(shù)為false時表示統(tǒng)計的面積不具有方向性,輸出輪廓面積的絕對值。 

輪廓長度 /周長

double arcLength( InputArray curve, bool closed );
  • curve:輪廓或者曲線的2D像素點。
  • closed:輪廓或者曲線是否閉合標志,true表示閉合。

該函數(shù)能夠統(tǒng)計輪廓或者曲線的長度,函數(shù)返回值為統(tǒng)計長度,單位為像素,數(shù)據(jù)類型為double。函數(shù)的第一個參數(shù)是輪廓或者曲線的2D像素點,數(shù)據(jù)類型為vector或者Mat。函數(shù)的第二個參數(shù)是輪廓或者曲線是否閉合的標志,true表示閉合。

函數(shù)統(tǒng)計的長度是輪廓或者曲線相鄰兩個像素點之間連線的距離,例如計算三角形三個頂點A、B和C構(gòu)成的輪廓長度時,并且函數(shù)第二個參數(shù)為true時,統(tǒng)計的長度是三角形三個邊AB、BC和CA的長度之和;當參數(shù)為false時,統(tǒng)計的長度是由A到C三個點之間依次連線的距離長度之和,即AB和BC的長度之和。

簡單示例

//
// 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;
 
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解如何用c++實現(xiàn)平衡二叉樹

    詳解如何用c++實現(xiàn)平衡二叉樹

    平衡二叉樹(Balanced Binary Tree)又被稱為AVL樹(有別于AVL算法),由前蘇聯(lián)的數(shù)學家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉樹,根據(jù)科學家的英文名也稱為AVL樹。本文介紹了它的原理和如何用C++代碼來實現(xiàn)
    2021-06-06
  • C++中“#”號的使用技巧

    C++中“#”號的使用技巧

    本篇文章是對C++中“#”號的使用技巧進行了分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實現(xiàn)單鏈表的基本功能詳解

    C語言實現(xiàn)單鏈表的基本功能詳解

    鏈表是一個結(jié)構(gòu)體實現(xiàn)的一種線性表,它只能從前往后,不可以從后往前,在實現(xiàn)單鏈表的操作時,需要用指針來操作。本文主要介紹了實現(xiàn)單鏈表的基本功能的代碼示例,具有一定價值,感興趣的同學可以學習一下
    2021-11-11
  • C++ 中滾動條的滾動問題

    C++ 中滾動條的滾動問題

    本文主要通過一個示例,給大家介紹了C++中滾動條的滾動問題,以及相關(guān)參數(shù)的解釋,非常的詳細,有需要的小伙伴可以參考下。
    2015-06-06
  • 詳解C語言內(nèi)核字符串轉(zhuǎn)換方法

    詳解C語言內(nèi)核字符串轉(zhuǎn)換方法

    在內(nèi)核開發(fā)模式下,初始化字符串也需要調(diào)用專用的初始化函數(shù),如下分別初始化ANSI和UNCODE字符串,本文我們就來看看代碼是如何實現(xiàn)的
    2022-09-09
  • C++中Covariant返回值類型詳解

    C++中Covariant返回值類型詳解

    這篇文章主要介紹了C++中Covariant返回值類型詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以可以參考一下
    2022-09-09
  • C++中的三大函數(shù)和操作符重載(Boolan)

    C++中的三大函數(shù)和操作符重載(Boolan)

    本文主要介紹了C++中的三大函數(shù)和操作符重載(Boolan)的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • c++實現(xiàn)的常見緩存算法和LRU

    c++實現(xiàn)的常見緩存算法和LRU

    LRU緩存算法也叫LRU頁面置換算法,是一種經(jīng)典常用的頁面置換算法,下面這篇文章主要介紹了c++實現(xiàn)的常見緩存算法和LRU,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 關(guān)于在MFC中將窗口最小化到托盤實現(xiàn)原理及操作步驟

    關(guān)于在MFC中將窗口最小化到托盤實現(xiàn)原理及操作步驟

    最小化的原理:首先要將窗口隱藏,然后在右下角繪制圖標;恢復的原理:將窗口顯示,再將托盤中的圖片刪除,接下來介紹實現(xiàn)方法,感興趣的朋友可以了解下啊,希望本文對你有所幫助
    2013-01-01
  • C++?pimpl機制詳細講解

    C++?pimpl機制詳細講解

    PIMPL?是?C++?中的一個編程技巧,意思為指向?qū)崿F(xiàn)的指針。具體操作是把類的實現(xiàn)細節(jié)放到一個單獨的類中,并用一個指針進行訪問
    2022-08-08

最新評論