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

溫馨提示×

溫馨提示×

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

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

C++ OpenCV如何實現圖像均值偏移濾波

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

這篇文章主要介紹了C++ OpenCV如何實現圖像均值偏移濾波,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

在圖像分割的過程中,我們可以利用均值偏移算法的這個特性,實現彩色圖像分割,均值漂移算法是一種通用的聚類算法,它的基本原理是:對于給定的一定數量樣本,任選其中一個樣本,以該樣本為中心點劃定一個圓形區域,求取該圓形區域內樣本的質心,即密度最大處的點,再以該點為中心繼續執行上述迭代過程,直至最終收斂。

Opencv中對應的均值偏移函數是pyrMeanShiftFiltering。這個函數是圖像在色彩層面的平滑濾波,它可以中和色彩分布相近的顏色,平滑色彩細節,侵蝕掉面積較小的顏色區域,所以在Opencv中它的后綴是濾波“Filter”,而不是分割“segment”。

函數API   

void pyrMeanShiftFiltering( InputArray src, OutputArray dst,
                                             double sp, double sr, int maxLevel=1,
                                             TermCriteria termcrit=TermCriteria(
                                                TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) );

   

參數說明:

src:輸入圖像,8位,三通道的彩色圖像,并不要求必須是RGB格式,HSV、YUV等Opencv中的彩色圖像格式均可;


dst:輸出圖像,跟輸入src有同樣的大小和數據格式;


sp: 定義的漂移物理空間半徑大小;


sr:  定義的漂移色彩空間半徑大小;


maxLevel:定義金字塔的最大層數;


termcrit:定義的漂移迭代終止條件,可以設置為迭代次數滿足終止,迭代目標與中心點偏差滿足終止,或者兩者的結合;


pyrMeanShiftFiltering函數的執行過程是這樣的:
1. 迭代空間構建:
以輸入圖像上src上任一點P0為圓心,建立物理空間上半徑為sp,色彩空間上半徑為sr的球形空間,物理空間上坐標2個—x、y,色彩空間上坐標3個—R、G、B(或HSV),構成一個5維的空間球體。
其中物理空間的范圍x和y是圖像的長和寬,色彩空間的范圍R、G、B分別是0~255。

2. 求取迭代空間的向量并移動迭代空間球體后重新計算向量,直至收斂:
在1中構建的球形空間中,求得所有點相對于中心點的色彩向量之和后,移動迭代空間的中心點到該向量的終點,并再次計算該球形空間中所有點的向量之和,如此迭代,直到在最后一個空間球體中所求得的向量和的終點就是該空間球體的中心點Pn,迭代結束。

3. 更新輸出圖像dst上對應的初始原點P0的色彩值為本輪迭代的終點Pn的色彩值,如此完成一個點的色彩均值漂移。

4. 對輸入圖像src上其他點,依次執行步驟1,、2、3,遍歷完所有點位后,整個均值偏移色彩濾波完成,這里忽略對金字塔的討論。


代碼實現

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

C++ OpenCV如何實現圖像均值偏移濾波

我們顯示一下源圖

C++ OpenCV如何實現圖像均值偏移濾波


物理空間半徑sp=10,色彩空間半徑sr=10時色彩濾波效果:

C++ OpenCV如何實現圖像均值偏移濾波

運行效果我們看一下

C++ OpenCV如何實現圖像均值偏移濾波


上面一看感覺沒有什么太大變化,我們改一下參數看看效果

物理空間半徑sp=50,色彩空間半徑sr=50時色彩濾波效果:

C++ OpenCV如何實現圖像均值偏移濾波

我們再運行一下看看

C++ OpenCV如何實現圖像均值偏移濾波

這樣一看上面右圖就非常明顯了


物理空間半徑sp=10,色彩空間半徑sr=100時色彩濾波效果:

C++ OpenCV如何實現圖像均值偏移濾波

運行的效果

C++ OpenCV如何實現圖像均值偏移濾波

可以看到對比上圖的還有一些白的亮點,在這里面基本都看不到了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++ OpenCV如何實現圖像均值偏移濾波”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

临泽县| 青神县| 辽阳市| 昭通市| 凉山| 杨浦区| 安庆市| 高尔夫| 涿州市| 新平| 双流县| 朝阳县| 洛扎县| 宝丰县| 蓬溪县| 哈尔滨市| 满洲里市| 遵义县| 图木舒克市| 正宁县| 黄浦区| 昌邑市| 江孜县| 鹤峰县| 民县| 舒兰市| 衢州市| 西藏| 天峨县| 柳江县| 平远县| 灵璧县| 额济纳旗| 漾濞| 枣庄市| 浑源县| 谷城县| 依兰县| 屏山县| 张掖市| 乐平市|