溫馨提示×

溫馨提示×

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

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

Python怎么生成隨機高斯模糊圖片

發布時間:2022-02-22 16:54:19 來源:億速云 閱讀:254 作者:iii 欄目:開發技術

這篇文章主要介紹了Python怎么生成隨機高斯模糊圖片的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python怎么生成隨機高斯模糊圖片文章都會有所收獲,下面我們一起來看看吧。

高斯模糊的介紹與原理

通常,圖像處理軟件會提供"模糊"(blur)濾鏡,使圖片產生模糊的效果。

"模糊"的算法有很多種,其中有一種叫做"高斯模糊"(Gaussian Blur)。它將正態分布(又名"高斯分布")用于圖像處理。

所謂"模糊",可以理解成每一個像素都取周邊像素的平均值。

如果使用簡單平均,顯然不是很合理,因為圖像都是連續的,越靠近的點關系越密切,越遠離的點關系越疏遠。因此,加權平均更合理,距離越近的點權重越大,距離越遠的點權重越小。

python生成高斯模糊

Python可以使用opencv庫很方便地生成模糊圖像,如果沒有安裝opencv的,可以用pip安裝:

pip install python-opencv

想了解高斯模糊是什么的話,可以看wiki百科-高斯模糊。對于一般人,只要知道這個操作可以生成模糊圖片就好了,一行代碼即可搞定:

import cv2
img = cv2.GaussianBlur(ori_img, (9, 9), 0)

這個函數的第一個參數是原圖像,第二個參數是高斯矩陣,要注意長和寬都必須為單數,第三個參數是標準差,如果寫0,則函數會自行計算。

那怎么控制模糊程度呢?很簡單,高斯矩陣的尺寸越大,標準差越大,處理過的圖像模糊程度越大。

介紹完了簡單的高斯模糊操作,我們加一個隨機處理,來隨機生成模糊程度不同的幾張圖像,其實也很簡單,加一個隨機函數來生成高斯矩陣的尺寸就可以了:

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庫,來在一組數字中隨機選擇一個數,加到最小尺寸上,作為每次生成的模糊圖片的高斯矩陣尺寸,這里我的尺寸最小值設為了11,大家可以根據需要自己嘗試看效果來設定。

關于“Python怎么生成隨機高斯模糊圖片”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python怎么生成隨機高斯模糊圖片”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女