您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python怎么生成隨機(jī)高斯模糊圖片的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Python怎么生成隨機(jī)高斯模糊圖片文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
通常,圖像處理軟件會(huì)提供"模糊"(blur)濾鏡,使圖片產(chǎn)生模糊的效果。
"模糊"的算法有很多種,其中有一種叫做"高斯模糊"(Gaussian Blur)。它將正態(tài)分布(又名"高斯分布")用于圖像處理。
所謂"模糊",可以理解成每一個(gè)像素都取周邊像素的平均值。
如果使用簡(jiǎn)單平均,顯然不是很合理,因?yàn)閳D像都是連續(xù)的,越靠近的點(diǎn)關(guān)系越密切,越遠(yuǎn)離的點(diǎn)關(guān)系越疏遠(yuǎn)。因此,加權(quán)平均更合理,距離越近的點(diǎn)權(quán)重越大,距離越遠(yuǎn)的點(diǎn)權(quán)重越小。
Python可以使用opencv庫(kù)很方便地生成模糊圖像,如果沒(méi)有安裝opencv的,可以用pip安裝:
pip install python-opencv
想了解高斯模糊是什么的話,可以看wiki百科-高斯模糊。對(duì)于一般人,只要知道這個(gè)操作可以生成模糊圖片就好了,一行代碼即可搞定:
import cv2
img = cv2.GaussianBlur(ori_img, (9, 9), 0)
這個(gè)函數(shù)的第一個(gè)參數(shù)是原圖像,第二個(gè)參數(shù)是高斯矩陣,要注意長(zhǎng)和寬都必須為單數(shù),第三個(gè)參數(shù)是標(biāo)準(zhǔn)差,如果寫0,則函數(shù)會(huì)自行計(jì)算。
那怎么控制模糊程度呢?很簡(jiǎn)單,高斯矩陣的尺寸越大,標(biāo)準(zhǔn)差越大,處理過(guò)的圖像模糊程度越大。
介紹完了簡(jiǎn)單的高斯模糊操作,我們加一個(gè)隨機(jī)處理,來(lái)隨機(jī)生成模糊程度不同的幾張圖像,其實(shí)也很簡(jiǎn)單,加一個(gè)隨機(jī)函數(shù)來(lái)生成高斯矩陣的尺寸就可以了:
import cv2
import random
imgName = "img.png"
min_size = 11
ori_img = cv2.imread(imgName)
for i in range(3):
addition = random.choice((0, 2, 4, 6, 8, 10, 12))
size = min_size + addition
kernel_size = (size, size)
img = cv2.GaussianBlur(ori_img, kernel_size, 0)
new_imgName = "New_" + str(i) + "_" + str(kernel_size[0]) + "_" + imgName
cv2.imwrite(new_imgName, img)
這里利用了random庫(kù),來(lái)在一組數(shù)字中隨機(jī)選擇一個(gè)數(shù),加到最小尺寸上,作為每次生成的模糊圖片的高斯矩陣尺寸,這里我的尺寸最小值設(shè)為了11,大家可以根據(jù)需要自己嘗試看效果來(lái)設(shè)定。
關(guān)于“Python怎么生成隨機(jī)高斯模糊圖片”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Python怎么生成隨機(jī)高斯模糊圖片”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。