OPENCV圖形計算面積、弧長API講解(1)

一.OPENCV圖形面積、弧長計算的API介紹

之前我們已經把圖形輪廓的檢測、畫框等功能講解了一遍。那今天我們主要結合輪廓檢測的API去計算圖形的面積,這些面積可以是矩形、圓形等等。圖形面積計算和弧長計算常用于車輛識別、橋梁識別等重要功能,常用的API如contourArea、arcLength、minAreaRect、boundingRect、rectangle、line等等。

1.contourArea的API講解

作用:計算輪廓的曲線面積,也就是去計算圖像本身的面積,計算的過程一般是用微積分等方式去計算。

CV_EXPORTS_W double contourArea( InputArray contour, bool oriented = false );
第一個參數:contour指的是每一個輪廓的數據,也稱之為輪廓的點
第二個參數:oriented表示的是某一個方向上輪廓的面積值
返回值:計算后的輪廓面積

2.arcLength的API講解

作用:是計算輪廓的周長,也就是圖形形狀本身的曲線弧度周長

CV_EXPORTS_W double arcLength( InputArray curve, bool closed );
第一個參數:curve輪廓曲線的2D像素點
第二個參數:closed輪廓或者曲線是否閉合標志,true表示閉合
返回值:計算后的輪廓周長

3.minAreaRect的API講解

作用:是計算最小的外接矩形,最小外接矩形指的是找到一個矩形能夠完全包裹所有的給定點,并且這個矩形是最小的。

如下圖:從下圖我們可以看到8這個形狀,被minAreaRect的矩形包圍了。這個矩形包含了整個形狀的所有點,更重要的這個矩形具有旋轉功能,這個8實際上有傾斜的角度,而這個最小矩形也能夠完美包含進來。

CV_EXPORTS_W RotatedRect minAreaRect( InputArray points );
第一個參數:points輸入的二維點數,可以Mat類型也可以是std::vector的向量類型
返回值:RotatedRect的矩形對象, 它表示的是一個輪廓的最小外接矩形,

我們來看看RotatedRect結構體成員變量

center旋轉矩形的質心

size旋轉矩形的寬度和高度

angle順時針的旋轉角度。

RotatedRect的四個點的確定

?

RotatedRect中矩形四個點通常用Point2f來表示,其中p[0]點的確定是最關鍵的,p[0]的位置通常分為兩種情況:

  1. 如果當前最小外接矩形沒有與坐標軸平行,則Y坐標最大的為點p[0],如2,3,4三張圖
  2. 如果當前最小矩形和坐標軸平行,則有兩個Y坐標最大的點,如圖1

4.boundingRect的API講解

作用:是計算圖形輪廓垂直邊界的最小矩形,這個矩形必須要和圖像是上下邊界平行的

我們看上圖:我們還是看8這個形狀依然還是之前的位置,然后boundingRect產生的矩形對整個8進行垂直邊界包圍。

CV_EXPORTS_W Rect boundingRect( InputArray array );
第一個參數:array輸入的灰度圖像或者2D點集,數據類型為vector或者Mat矩陣數據
返回值:Rect的矩形對象,它表示的是物體輪廓的最大外接矩形。我們來看看Rect主要的成員變量

Rect結構體

x矩形的x坐標軸

y 矩形的y坐標軸

width矩形的寬度

height矩形的高度

?5.rectangleAPI講解

?作用:是繪制矩形,它有兩種表示形式

1.以兩個頂點的方式畫矩形

void cv::rectangle(InputOutputArray img,Point pt1,Point pt2,const Scalar & color,int? thickness = 1,int? lineType = LINE_8, int? shift = 0)

第一個參數:輸入的矩陣圖像數據

第二個參數:pt1是矩形的一個頂點,左上角的頂點

第三個參數:pt2矩形中與pt1相對的頂點,也就是兩個點在對角線上,也就是右下角的頂點

第四個參數:Scalar顏色的標量

第五個參數:thickness線寬

第六個參數:lineType線的類型,默認是LINE_8就行,具體的類型如下圖:

第七個參數:shift坐標的小數點位,默認為0就可以

2.以Rect的方式畫矩形

void cv::rectangle(InputOutputArray img,Rect rec,const Scalar & color, int? thickness = 1,int? lineType = LINE_8, int? shift = 0)??

第一個參數:輸入的矩陣圖像數據

第二個參數:Rect的結構體,我們來看看這個Rect的重要成員變量

x:矩形的x坐標軸

y 矩形的y坐標軸

width矩形的寬度

height矩形的高度

第三個參數:Scalar顏色的標量

第四個參數:thickness線寬,默認是1

第五個參數:lineType線的類型,默認是LINE_8就行,line的類型如下:

第六個參數:shift坐標點的小數點位

6.lineAPI講解

?作用:是通過兩個點繪制直線

CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,int thickness = 1, int lineType = LINE_8, int shift = 0);

第一個參數:輸入的矩陣圖像數據

第二個參數:pt1是線的起始坐標,也就是圖上x1坐標和y1坐標
第三個參數:pt2是線的終點坐標,也就是圖上x2坐標和y2坐標

第四個參數:Scalar是顏色標量,繪制直線的顏色
第五個參數:thickness它是線的粗細程度,默認為1

第六個參數:lineType線的類型,默認是LINE_8就行,具體的類型

第七個參數:shift坐標點的小數點位數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908864.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908864.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一.設計模式的基本概念

一.核心概念 對軟件設計中重復出現問題的成熟解決方案,提供代碼可重用性、可維護性和擴展性保障。核心原則包括: 1.1. 單一職責原則? ?定義?:一個類只承擔一個職責,避免因職責過多導致的代碼耦合。 1.2. 開閉原則? ?定義?&#xf…

React第五十七節 Router中RouterProvider使用詳解及注意事項

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一個核心組件&#xff0c;用于提供基于數據路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了傳統的 <BrowserRouter>&#xff0c;支持更強大的數據加載和操作功能&#xff08;如 loader 和…

Opencv中的addweighted函數

一.addweighted函數作用 addweighted&#xff08;&#xff09;是OpenCV庫中用于圖像處理的函數&#xff0c;主要功能是將兩個輸入圖像&#xff08;尺寸和類型相同&#xff09;按照指定的權重進行加權疊加&#xff08;圖像融合&#xff09;&#xff0c;并添加一個標量值&#x…

C++ 基礎特性深度解析

目錄 引言 一、命名空間&#xff08;namespace&#xff09; C 中的命名空間? 與 C 語言的對比? 二、缺省參數? C 中的缺省參數? 與 C 語言的對比? 三、引用&#xff08;reference&#xff09;? C 中的引用? 與 C 語言的對比? 四、inline&#xff08;內聯函數…

關于面試找工作的總結(四)

不同情況下收到offer后的處理方法 1.不會去的,只是面試練手2.還有疑問,考慮中3.offer/職位不滿足期望的4.已確認,但又收到更好的5.還想挽回之前的offer6.確認,準備入職7.還想拖一下的1.不會去的,只是面試練手 HR您好,非常榮幸收到貴司的offer,非常感謝一直以來您的幫助,…

什么是高考?高考的意義是啥?

能見到這個文章的群體&#xff0c;應該都經歷過高考&#xff0c;突然想起“什么是高考&#xff1f;意義何在&#xff1f;” 一、高考的定義與核心功能 **高考&#xff08;普通高等學校招生全國統一考試&#xff09;**是中國教育體系的核心選拔性考試&#xff0c;旨在為高校選拔…

L1和L2核心區別 !!--part 2

哈嘍&#xff0c;我是 我不是小upper~ 昨天&#xff0c;咱們分享了關于 L1 正則化和 L2 正則化核心區別的精彩內容。今天我來進一步補充和拓展。 首先&#xff0c;咱們先來聊聊 L1 和 L2 正則化&#xff0c;方便剛接觸的同學理解。 L1 正則化&#xff08;Lasso&#xff09;&…

字節推出統一多模態模型 BAGEL,GPT-4o 級的圖像生成能力直接開源了!

字節推出的 BAGEL 是一個開源的統一多模態模型&#xff0c;他們直接開源了GPT-4o級別的圖像生成能力。&#xff08;輕松拿捏“萬物皆可吉卜力”玩法~&#xff09;。可以在任何地方對其進行微調、提煉和部署&#xff0c;它以開放的形式提供與 GPT-4o 和 Gemini 2.0 等專有系統相…

互聯網大廠Java面試:從Spring Cloud到Kafka的技術考察

場景&#xff1a;互聯網大廠Java求職者面試 面試官與謝飛機的對話 面試官&#xff1a;我們先從基礎開始&#xff0c;謝飛機&#xff0c;你能簡單介紹一下Java SE和Java EE的區別嗎&#xff1f; 謝飛機&#xff1a;哦&#xff0c;這個簡單。Java SE是標準版&#xff0c;適合桌…

18-Oracle 23ai JSON二元性顛覆傳統

在當今百花齊放的多模型數據庫時代&#xff0c;開發人員常在關系型與文檔型數據庫間艱難取舍。Oracle Database 23ai推出的JSON關系二元性&#xff08;JSON Relational Duality&#xff09;?? 和二元性視圖&#xff08;Duality Views&#xff09;?? 創新性地統一了兩者優勢…

藍橋杯 冶煉金屬

原題目鏈接 &#x1f527; 冶煉金屬轉換率推測題解 &#x1f4dc; 原題描述 小藍有一個神奇的爐子用于將普通金屬 O O O 冶煉成為一種特殊金屬 X X X。這個爐子有一個屬性叫轉換率 V V V&#xff0c;是一個正整數&#xff0c;表示每 V V V 個普通金屬 O O O 可以冶煉出 …

DreamO字節開源圖像編輯框架

DreamO是由字節跳動聯合北京大學深圳研究生院電子與計算機工程學院共同研發的統一圖像定制生成框架&#xff0c;支持多樣化的編輯任務。 看下介紹的核心功能&#xff0c;還是很厲害的&#xff0c;今天咱們來體驗下。 有正常本地部署版的。 https://github.com/bytedance/Drea…

EM儲能網關ZWS智慧儲能云應用(11) — 一級架構主從架構

ZWS智慧儲能云針對儲能場景下不同的架構體系進行了兼容&#xff0c;可以適配用戶面臨的復雜現場環境&#xff0c;滿足更深層次的管理和維護需求。 簡介 儲能系統包含PCS、BMS、EMS等多個組件&#xff0c;不同儲能架構管理和決策方式也有不同。為了適配用戶面臨的復雜現場環境&…

從0開始一篇文章學習Nginx

Nginx服務 HTTP介紹 ## HTTP協議是Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫,是用于從萬維網&#xff08;WWW:World Wide Web &#xff09;服務器傳輸超文本到本地瀏覽器的傳送協議。 ## HTTP工作在 TCP/IP協議體系中的TCP協議上&#…

Linux應用開發之網絡套接字編程(實例篇)

服務端與客戶端單連接 服務端代碼 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

Python SQLModel 簡介

銷量過萬TEEIS德國護膝夏天用薄款 優惠券冠生園 百花蜂蜜428g 擠壓瓶純蜂蜜巨奇嚴選 鞋子除臭劑360ml 多芬身體磨砂膏280g健70%-75%酒精消毒棉片濕巾1418cm 80片/袋3袋大包清潔食品用消毒 優惠券AIMORNY52朵紅玫瑰永生香皂花同城配送非鮮花七夕情人節生日禮物送女友 熱賣妙潔棉…

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API實戰:導出框架元素數據到Excel 在結構工程師的日常工作中,經常需要從ETABS模型中提取框架元素信息進行后續分析。手動復制粘貼不僅耗時,還容易出錯。今天我們來用簡單的VBA代碼實現自動化導出。 ?? 我們要實現什么? 一鍵點擊,就能將ETABS中所有框架元素的基…

springboot根據部署服務器生成機器碼+加密生成到期時間授權碼設置項目在服務器的到期時間

生成機器碼 首先需要在后端寫個獲取window或linux的機器碼&#xff0c;根據CPU序列號和硬盤序列號(Windows)&#xff0c;拼接得到 /*** 操作系統的工具類*/ public class OSUtils {/*** 獲取window or linux機器碼** return*/public static String getOSNumber() {Map<Str…

Thumb-2指令集及其與STM32的關系

Thumb-2指令集及其與STM32的關系&#xff1a; 1. Thumb-2指令集是什么&#xff1f; 本質&#xff1a;Thumb-2是ARM公司設計的混合指令集架構&#xff0c;首次在ARMv7架構中引入&#xff08;如Cortex-M3/M4/M7&#xff09;。 核心創新&#xff1a; 融合了傳統 32位ARM指令&…

Haption 力反饋遙操作機器人:6 自由度 + 低延遲響應,解鎖精準遠程操控體驗

Haption自2001年成立以來&#xff0c;始終專注于力反饋設備與定制化解決方案的設計、研發及銷售。作為工業級力反饋技術的先行者&#xff0c;其核心產品以高精度交互與可靠性著稱&#xff0c;已與達索系統、空客、Orano 等行業頭部企業達成深度合作&#xff0c;業務覆蓋工程仿真…