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

溫馨提示×

溫馨提示×

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

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

C++ OpenCV圖像分割之如何實現分水嶺分割

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

這篇文章給大家分享的是有關C++ OpenCV圖像分割之如何實現分水嶺分割的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。


API介紹

void watershed( InputArray image, InputOutputArray markers );

參數說明:

image:   必須是一個8bit 3通道彩色圖像矩陣序列

markers: 在執行分水嶺函數watershed之前,必須對第二個參數markers進行處理,它應該包含不同區域的輪廓,每個輪廓有一個自己唯一的編號,輪廓的定位可以通過Opencv中findContours方法實現,這個是執行分水嶺之前的要求。算法會根據markers傳入的輪廓作為種子(也就是所謂的注水點),對圖像上其他的像素點根據分水嶺算法規則進行判斷,并對每個像素點的區域歸屬進行劃定,直到處理完圖像上所有像素點。而區域與區域之間的分界處的值被置為“-1”,以做區分。


上面的API函數非常簡單,但是參數里面第二個說了在需要進行輪廓的提取,所以說在做分水嶺操作之前,我們要結合以前學過的知識對圖像進行先一步的處理如   均值濾波----變成灰度圖---二值化---形態學操作---查找輪廓等

代碼演示

我們再新建一個項目名為opencv--Matting,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.

C++ OpenCV圖像分割之如何實現分水嶺分割

運行一下看我們的源圖

C++ OpenCV圖像分割之如何實現分水嶺分割

上面就是我們的源圖,然后我們開始進行圖像分割

1.均值漂移算法

C++ OpenCV圖像分割之如何實現分水嶺分割

我們看一下結果,右圖上變化不大,就是相當于做了一個簡單的模糊

C++ OpenCV圖像分割之如何實現分水嶺分割

2.把圖像轉為灰度圖并進行二值化操作

C++ OpenCV圖像分割之如何實現分水嶺分割

再運行看一下效果

C++ OpenCV圖像分割之如何實現分水嶺分割

3.圖二值化圖像進行距離變化并歸一化顯示出來

C++ OpenCV圖像分割之如何實現分水嶺分割

運行效果

C++ OpenCV圖像分割之如何實現分水嶺分割

4.將變換后的重新二值化顯示出來

C++ OpenCV圖像分割之如何實現分水嶺分割

運行效果

C++ OpenCV圖像分割之如何實現分水嶺分割

5.定義markers并劃到新的Mat里面

C++ OpenCV圖像分割之如何實現分水嶺分割

6.對源圖進行形態學操作,去掉干擾,讓效果更好

C++ OpenCV圖像分割之如何實現分水嶺分割

7.將生成的markers進行分水嶺轉換

C++ OpenCV圖像分割之如何實現分水嶺分割

8.生成隨機顏色,并填充顏色,在新的圖像中畫出來后看一下分割的效果

C++ OpenCV圖像分割之如何實現分水嶺分割

C++ OpenCV圖像分割之如何實現分水嶺分割

9.顯示最后填充的圖片并打印出一共多少個

C++ OpenCV圖像分割之如何實現分水嶺分割


我們來看一下運行效果

C++ OpenCV圖像分割之如何實現分水嶺分割

可以看到上面已經把所有的顏色都區分開了,我們再看一下輸入的輪廓數,下面打印出來的就是14個,也和我們圖片中是一樣的。

C++ OpenCV圖像分割之如何實現分水嶺分割

感謝各位的閱讀!關于“C++ OpenCV圖像分割之如何實現分水嶺分割”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

慈利县| 汕尾市| 洪泽县| 兴宁市| 宝兴县| 榆树市| 苍南县| 福海县| 获嘉县| 吴忠市| 南召县| 巫山县| 视频| 珲春市| 山阴县| 宜城市| 通江县| 西林县| 台江县| 若尔盖县| 桃园县| 建昌县| 灵丘县| 东山县| 绥宁县| 厦门市| 永康市| 论坛| 墨脱县| 长泰县| 宁波市| 杭锦旗| 聂拉木县| 临朐县| 吉首市| 马尔康县| 巴东县| 藁城市| 大渡口区| 金阳县| 横峰县|