您好,登錄后才能下訂單哦!
本篇內容介紹了“Python OpenCV邊緣濾波保留怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
雙邊濾波函數原型如下:
dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])
參數說明:
src:輸入圖像;
d:過濾過程中每個像素鄰域的直徑范圍。如果不是正數,則函數會從參數 sigmaSpace 計算該值;
sigmaColor:顏色空間過濾器的 sigma 值,參數的值越大,表明該像素鄰域內有越寬廣的顏色會被混合到一起,產生較大的半等色區域;
sigmaSpace:坐標空間中濾波器的 sigma 值,如果該值較大,則意味著越遠的像素將相互影響,從而使更大的區域中足夠相似的顏色獲取相同的顏色。當 d>0 時,d 指定了鄰域大小且與 sigmaSpace 無關,否則 d 正比于 sigmaSpace。
dst:和源圖象相同大小、相同格式的輸出圖象;
一般將 sigmaSpace
設置大一些,sigmaColor
設置小一些,最終呈現的效果較好。
優缺點:
雙邊濾波,可很好的保存圖像邊緣細節,并且過濾掉低頻分量的噪音,但是雙邊濾波效率不是很高,花費時間比其他濾波器較長。
測試代碼如下,先掌握函數基本使用再說。
import cv2 as cvimport numpy as np# 雙邊濾波def bilater(image):# 第三個參數大一點(color),第四個小一點(space)dst = cv.bilateralFilter(image, 0, 100, 15)cv.namedWindow("dst")cv.imshow("dst", dst)src = cv.imread("./123.jpg")cv.namedWindow('src')cv.imshow('src', src)bilater(src)cv.waitKey(0)cv.destroyAllWindows()
均值遷移算法是一種通用的聚類算法,它的基本原理是:
對于給定的一定數量樣本,任選其中一個樣本,以該樣本為中心點劃定一個圓形區域,求取該圓形區域內樣本的質心,即密度最大處的點,再以該點為中心繼續執行上述迭代過程,直至最終收斂。(沒看太明白,大概了解一下即可)
函數原型如下:
dst = cv2.pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]])
參數說明:
src:輸入圖像,8 位 3 通道圖像;
sp:遷移物理空間半徑大小;
sr:遷移色彩空間半徑大小;
dst:可選參數,和源圖象相同大小、相同格式的輸出圖象;
maxLevel:可選參數,金字塔的最大層數;
termcrit:可選參數,遷移迭代終止條件,可以設置為迭代次數滿足終止,迭代目標與中心點偏差滿足終止,或者兩者的結合。
所有參數中,sp
與 sr
必選,二者設置的值越大,對圖像色彩的平滑效果越明顯,同時函數耗時越多。
測試代碼如下:
import cv2 as cvimport numpy as np# 雙邊濾波def bilater(image):# 第三個參數大一點(color),第四個小一點(space)dst = cv.bilateralFilter(image, 0, 100, 15)cv.namedWindow("dst")cv.imshow("dst", dst)# 均值遷移濾波def pyrmeanshift(src):dst = cv.pyrMeanShiftFiltering(src, 10, 50)cv.imshow("dst", dst)src = cv.imread("./123.jpg")cv.namedWindow('src')cv.imshow('src', src)pyrmeanshift(src)cv.waitKey(0)cv.destroyAllWindows()
“Python OpenCV邊緣濾波保留怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。