中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

宝坻区| 景泰县| 双流县| 甘泉县| 叶城县| 南昌县| 眉山市| 溧阳市| 东乌珠穆沁旗| 甘孜县| 科技| 伊金霍洛旗| 韶关市| 台南县| 新兴县| 永福县| 花莲市| 哈尔滨市| 宁阳县| 安多县| 高阳县| 彩票| 泽普县| 巴南区| 老河口市| 青州市| 无为县| 广德县| 普陀区| 隆化县| 云南省| 酉阳| 九龙城区| 绥化市| 安丘市| 屏南县| 寿宁县| 民乐县| 济宁市| 张家港市| 泉州市|