亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Python如何實現在線批量美顏功能

發布時間:2020-07-17 11:00:04 來源:億速云 閱讀:166 作者:小豬 欄目:開發技術

這篇文章主要講解了Python如何實現在線批量美顏功能,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

結果

Python如何實現在線批量美顏功能

然后直接放源碼:

import cv2 as cv

source = cv.imread("zhaopian.jpg")
dst = cv.bilateralFilter(src=source, d=0, sigmaColor=30, sigmaSpace=15)

cv.imshow("source", source)
cv.imshow("dst", dst)

cv.waitKey()
cv.destroyAllWindows()

好了,本文結果部分介紹結束,想進一步了解一下原理的同學可以接著往下看了,沒啥興趣的可以左上角了。

雙邊濾波原理

上面的圖片美顏效果其實使用的是 OpenCV 中為我們提供的雙邊濾波器,是一種圖片降噪算法。

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,本質是基于高斯濾波。

前面的文章介紹過,高斯濾波的方式會造成邊緣模糊化,這是沒辦法的事情,這是高斯濾波過濾方式而導致的。

而雙邊濾波就是在高斯濾波的基礎上,對高斯濾波的方式加以改進,結合圖像的空間鄰近度和像素值相似度的一種折處理,同時考慮 空域信息(domain) 和 值域信息(range) ,達到保邊降噪的目的。

說人話就是雙邊濾波在進行濾波的過程中,不光要考慮周圍像素值與中點像素值的大小之差,還需要考慮空間上的距離,進而確定該點對中間點的影響因子。

比如在一張圖像中,相鄰的像素點的顏色會非常相近,但是如果在邊緣區域,相鄰元素點的顏色變化會非常的大。

高斯過濾器的過濾過程中就是因為沒有考慮邊緣區域而導致過濾后圖像邊緣模糊,而雙邊濾波由于在過濾的過程中考慮到了周圍像素值與中點像素值的差值大小,從而會確定一個影響因子,從而實現圖片的保邊降噪。

具體的實現原理如下:

希望你們的高中數學沒有都還給你們的數學老師

整個雙邊濾波的算法分為兩部分,一個是顏色值的相似度(值域核),公式如下:

$$
r(i, j, k, l) = exp( - \frac{||f(i, j) − f(k, l)||2}{2{\sigma2_r}} )
$$

另一個是計算空間距離的相似度(空域核),也就是說,離得越近,相似度越高,公式如下:

$$
d(i, j, k, l)=exp( - \frac{(i−k)^2 + (j−l)2}{2{\sigma2_d}})
$$

上面的邏輯還是很清晰,千萬不要被一堆符號弄暈了。

這里 (i, j) 代表的是要處理的像素點的坐標點,而 (k,l) 則是要處理的范圍內,可能影響到其值的像素點的坐標。

最終的權重系數 w(i,j,k,l) 取決于空域核和值域核的乘積,公式如下:

$$
w(i,j,k,l)=d(i,j,k,l) ∗ r(i,j,k,l) = exp( - \frac{(i−k)^2 + (j−l)2}{2{\sigma2_d}} - \frac{||f(i, j) − f(k, l)||2}{2{\sigma2_r}})
$$

下面是一個經典的雙邊濾波的原理示意圖:

Python如何實現在線批量美顏功能

從這個圖中可以看出,在圖(b)空域核上,每個像素的權重是符合高斯分布的,而在圖(c)的值域核上,由于像素取值相差過大,不同顏色的權重系數相差也很大,雙邊過濾過濾完成后,邊緣兩側的像素點保留了原有的色彩值。

接下來還是看下雙邊濾波的原函數:

def bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)

  • src:原圖
  • d:像素鄰域的直徑。如果這個值設為非正數,那么 OpenCV 會從第五個參數 sigmaSpace 來將它計算出來。
  • sigmaColor:顏色空間濾波器的 $\sigma$ 值。這個參數的值越大,就表明該像素鄰域內有更寬廣的顏色會被混合到一起,產生較大的半相等顏色區域。
  • sigmaSpace:坐標空間中濾波器的 $\sigma$ 值,坐標空間的標注方差。他的數值越大,意味著越遠的像素會相互影響,從而使更大的區域足夠相似的顏色獲取相同的顏色。當 d > 0 , d 指定了鄰域大小且與 sigmaSpace 無關。否則, d 正比于 sigmaSpace 。使用過程中我發現這個值越大,圖像的過渡效果越好。

源代碼我就不放了,實際上只有那一行代碼,不過希望看到本文的各位除了知道雙邊濾波能對圖像進行美顏以外還是能稍微了解下原理。

看完上述內容,是不是對Python如何實現在線批量美顏功能有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

辰溪县| 台山市| 蒙自县| 南安市| 鄢陵县| 临沭县| 常山县| 应用必备| 景宁| 巴南区| 贵港市| 泰兴市| 勐海县| 德惠市| 乐平市| 油尖旺区| 威海市| 广元市| 瑞昌市| 驻马店市| 沙坪坝区| 托克逊县| 栾川县| 桂平市| 腾冲县| 壶关县| 玉田县| 彩票| 保亭| 日喀则市| 米林县| 呈贡县| 金沙县| 邛崃市| 新干县| 大兴区| 罗甸县| 盐城市| 金昌市| 纳雍县| 抚松县|