溫馨提示×

溫馨提示×

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

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

Python OpenCV邊緣濾波保留怎么使用

發(fā)布時間:2021-11-23 11:35:27 來源:億速云 閱讀:195 作者:iii 欄目:云計算

本篇內(nèi)容介紹了“Python OpenCV邊緣濾波保留怎么使用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

函數(shù)原型介紹

高斯雙邊濾波

雙邊濾波函數(shù)原型如下:

dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])

參數(shù)說明:

  • src:輸入圖像;

  • d:過濾過程中每個像素鄰域的直徑范圍。如果不是正數(shù),則函數(shù)會從參數(shù) sigmaSpace 計算該值;

  • sigmaColor:顏色空間過濾器的 sigma 值,參數(shù)的值越大,表明該像素鄰域內(nèi)有越寬廣的顏色會被混合到一起,產(chǎn)生較大的半等色區(qū)域;

  • sigmaSpace:坐標空間中濾波器的 sigma 值,如果該值較大,則意味著越遠的像素將相互影響,從而使更大的區(qū)域中足夠相似的顏色獲取相同的顏色。當 d>0 時,d 指定了鄰域大小且與 sigmaSpace 無關(guān),否則 d 正比于 sigmaSpace。

  • dst:和源圖象相同大小、相同格式的輸出圖象;

一般將 sigmaSpace 設置大一些,sigmaColor 設置小一些,最終呈現(xiàn)的效果較好。

優(yōu)缺點:
雙邊濾波,可很好的保存圖像邊緣細節(jié),并且過濾掉低頻分量的噪音,但是雙邊濾波效率不是很高,花費時間比其他濾波器較長。

測試代碼如下,先掌握函數(shù)基本使用再說。

import cv2 as cvimport numpy as np# 雙邊濾波def bilater(image):# 第三個參數(shù)大一點(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()


均值遷移濾波

均值遷移算法是一種通用的聚類算法,它的基本原理是:

對于給定的一定數(shù)量樣本,任選其中一個樣本,以該樣本為中心點劃定一個圓形區(qū)域,求取該圓形區(qū)域內(nèi)樣本的質(zhì)心,即密度最大處的點,再以該點為中心繼續(xù)執(zhí)行上述迭代過程,直至最終收斂。(沒看太明白,大概了解一下即可)

函數(shù)原型如下:

dst = cv2.pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]])

參數(shù)說明:

  • src:輸入圖像,8 位 3 通道圖像;

  • sp:遷移物理空間半徑大??;

  • sr:遷移色彩空間半徑大??;

  • dst:可選參數(shù),和源圖象相同大小、相同格式的輸出圖象;

  • maxLevel:可選參數(shù),金字塔的最大層數(shù);

  • termcrit:可選參數(shù),遷移迭代終止條件,可以設置為迭代次數(shù)滿足終止,迭代目標與中心點偏差滿足終止,或者兩者的結(jié)合。

所有參數(shù)中,spsr 必選,二者設置的值越大,對圖像色彩的平滑效果越明顯,同時函數(shù)耗時越多。

測試代碼如下:

import cv2 as cvimport numpy as np# 雙邊濾波def bilater(image):# 第三個參數(shù)大一點(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邊緣濾波保留怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

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

AI