您好,登錄后才能下訂單哦!
本篇內容介紹了“如何使用OpenCV和Python實現圖片高斯模糊”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
高斯模糊
高斯模糊(英語:Gaussian Blur),通常用它來減少圖像噪聲以及降低細節層次。這種模糊技術生成的圖像,其視覺效果就像是經過一個半透明屏幕在觀察圖像,這與鏡頭焦外成像效果散景以及普通照明陰影中的效果都明顯不同。高斯模糊也用于計算機視覺算法中的預先處理階段,以增強圖像在不同比例大小下的圖像效果(參見尺度空間表示以及尺度空間實現)。 從數學的角度來看,圖像的高斯模糊過程就是圖像與正態分布做卷積。由于正態分布又叫作高斯分布,所以這項技術就叫作高斯模糊。圖像與圓形方框模糊做卷積將會生成更加精確的焦外成像效果。由于高斯函數的傅立葉變換是另外一個高斯函數,所以高斯模糊對于圖像來說就是一個低通濾波器。
高斯模糊原理: “模糊”,就是將圖像中每個像素值進行重置的過程,這個過程采用將每一個像素都設置成周邊像素的平均值。
# 高斯模糊
# 高斯模糊
# 操作
# cv2.GaussianBlur(image, (135, 135), 0) #(5, 5)表示高斯矩陣(高斯內核)的長與寬都是5(必須為奇數),標準差取0
import cv2
import numpy as np
def clamp(pv): #保證 RGB三色值的數值不超過255
if pv>255:
return 255
if pv<0:
return 0
else:
return pv
def gaussian_noise(image): #給圖片加一些噪聲,高斯噪聲
h, w, c = image.shape #獲取三個值,高度、寬度、深度
for row in range(h): #在寬度、 高度中遍歷進行像素點RGB的賦值
for col in range(w):
s=np.random.normal(0, 20, 3) #獲取隨機數 3個數的數組
b = image[row, col, 0] # blue 原來的藍色值
g = image[row, col, 1] # green
r = image[row, col, 2] # red
image[row, col, 0] = clamp(b + s[0]) #加上處理賦值
image[row, col, 1] = clamp(g + s[1])
image[row, col, 2] = clamp(r + s[2])
cv2.imshow("Gauss_noise", image)
print("--------Hello Python--------")
src=cv2.imread("lena.jpg")
cv2.imshow("Source Image",src)
t1=cv2.getTickCount()#獲取時間值
gaussian_noise(src)
t2=cv2.getTickCount()#獲取時間值
time=(t2-t1)/cv2.getTickFrequency()#計算出時間(s)
print("所用時間:%s"%(time*1000))
dst = cv2.GaussianBlur(src, (2555,2555), 15)#進行高斯模糊處理
cv2.imshow("Gauss_blur",dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
“如何使用OpenCV和Python實現圖片高斯模糊”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。