91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

绵竹市| 新河县| 米林县| 清新县| 南投市| 商南县| 安陆市| 北辰区| 永善县| 绥中县| 南川市| 夏河县| 宜昌市| 苗栗市| 万荣县| 万源市| 岢岚县| 沛县| 彭州市| 定安县| 政和县| 电白县| 西贡区| 裕民县| 普兰县| 大悟县| 通城县| 射阳县| 黄骅市| 湟中县| 湖北省| 巴林右旗| 阿克| 浏阳市| 盐山县| 新化县| 大同县| 县级市| 东宁县| 象州县| 罗平县|