亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ OpenCV如何實現凸包檢測

發布時間:2021-11-26 10:04:14 來源:億速云 閱讀:371 作者:小新 欄目:大數據

這篇文章主要介紹C++ OpenCV如何實現凸包檢測,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

凸包

凸包指如果在集合A內連接任意兩個點的直線段都在A的內部,則稱集合A是凸形的。簡單點理解,就是一個多邊型,沒有凹的地方。凸包(凸殼)能包含點集中所有的點,凸包檢測常應用在物體識別、手勢識別及邊界檢測等領域。

一個輪廓可以有無數個包圍它的外殼,而其中表面積最小的一個外殼,就是凸包。

相關API

OpenCV中提供了函數convexHull()用于對物體輪廓凸包進行檢測,對形狀的凸包缺陷分析時使用

 void convexHull( InputArray points, OutputArray hull, bool clockwise = false, bool returnPoints = true );

  • points:輸入二維點集(一般為輪廓點集),這些點集被存儲在容器vector或Mat中,在下面的源碼中,我是強制轉化為了Mat類型。

  • hull:凸包點集輸出。類型要么為整型向量,要么為點集向量,如果是整型向量,那么存儲的只是索引,索引的對象是輸入二維點集(如果不懂這句話的意思,看一遍下面給出的源碼就清楚了)。

  • clockwise:凸包方向的標志位。如果是true,那么是基于順時針方向,如果是false,那么是基于反時針方向。

  • returnPoints:  表示返回點個數,如果第二個參數是vector<Point>則自動忽略

代碼演示

實現步驟

  1. 圖像從RGB轉換為灰度圖

  2. 灰度圖轉為二值圖像

  3. 通過發現輪廓得到候選點

  4. 凸包API調 用

  5. 繪制顯示

新建一個項目opencv-0024,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法

C++ OpenCV如何實現凸包檢測

C++ OpenCV如何實現凸包檢測

凸包的處理代碼C++ OpenCV如何實現凸包檢測

C++ OpenCV如何實現凸包檢測

C++ OpenCV如何實現凸包檢測

下面是顯示效果

C++ OpenCV如何實現凸包檢測

我們再換幾個圖像試試看看效果

C++ OpenCV如何實現凸包檢測

C++ OpenCV如何實現凸包檢測

以上是“C++ OpenCV如何實現凸包檢測”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福建省| 郁南县| 吴桥县| 浪卡子县| 信丰县| 溧阳市| 壶关县| 社会| 洞口县| 海宁市| 鸡泽县| 城固县| 嘉定区| 比如县| 家居| 浦江县| 普定县| SHOW| 鸡东县| 宁化县| 田林县| 开阳县| 子长县| 集安市| 乐清市| 泰宁县| 富锦市| 清远市| 株洲市| 滕州市| 宜阳县| 延寿县| 焉耆| 淮安市| 连城县| 绥棱县| 甘南县| 大关县| 沭阳县| 龙陵县| 泰州市|