OpenCV3.3+Python3.6實現(xiàn)圖片高斯模糊
本文實例為大家分享了OpenCV3.3+Python3.6實現(xiàn)圖片高斯模糊的具體代碼,供大家參考,具體內(nèi)容如下
高斯模糊
高斯模糊(英語:Gaussian Blur),通常用它來減少圖像噪聲以及降低細(xì)節(jié)層次。這種模糊技術(shù)生成的圖像,其視覺效果就像是經(jīng)過一個半透明屏幕在觀察圖像,這與鏡頭焦外成像效果散景以及普通照明陰影中的效果都明顯不同。高斯模糊也用于計算機視覺算法中的預(yù)先處理階段,以增強圖像在不同比例大小下的圖像效果(參見尺度空間表示以及尺度空間實現(xiàn))。 從數(shù)學(xué)的角度來看,圖像的高斯模糊過程就是圖像與正態(tài)分布做卷積。由于正態(tài)分布又叫作高斯分布,所以這項技術(shù)就叫作高斯模糊。圖像與圓形方框模糊做卷積將會生成更加精確的焦外成像效果。由于高斯函數(shù)的傅立葉變換是另外一個高斯函數(shù),所以高斯模糊對于圖像來說就是一個低通濾波器。
高斯模糊原理: “模糊”,就是將圖像中每個像素值進(jìn)行重置的過程,這個過程采用將每一個像素都設(shè)置成周邊像素的平均值。
# 高斯模糊
# 高斯模糊
# 操作
# cv2.GaussianBlur(image, (135, 135), 0) #(5, 5)表示高斯矩陣(高斯內(nèi)核)的長與寬都是5(必須為奇數(shù)),標(biāo)準(zhǔn)差取0
import cv2
import numpy as np
def clamp(pv): #保證 RGB三色值的數(shù)值不超過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): #在寬度、 高度中遍歷進(jìn)行像素點RGB的賦值
for col in range(w):
s=np.random.normal(0, 20, 3) #獲取隨機數(shù) 3個數(shù)的數(shù)組
b = image[row, col, 0] # blue 原來的藍(lán)色值
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)#進(jìn)行高斯模糊處理
cv2.imshow("Gauss_blur",dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
(1)原圖:

(2)高斯噪聲圖片

(3)高斯模糊效果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
簡單了解Django ContentType內(nèi)置組件
這篇文章主要介紹了簡單了解Django ContentType內(nèi)置組件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
5個Python中實現(xiàn)文字轉(zhuǎn)語音模塊的使用講解
這篇文章主要為大家詳細(xì)介紹了5個Python中實現(xiàn)文字轉(zhuǎn)語音模塊的使用,文中的示例代碼講解詳細(xì),對我們深入掌握Python有一定的幫助,需要的可以參考下2023-11-11
Python實現(xiàn)統(tǒng)計圖像連通域的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)統(tǒng)計圖像連通域的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-04-04
Python3 利用requests 庫進(jìn)行post攜帶賬號密碼請求數(shù)據(jù)的方法
今天小編就為大家分享一篇Python3 利用requests 庫進(jìn)行post攜帶賬號密碼請求數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
使用python對視頻文件分辨率進(jìn)行分組的實例代碼
通過對視頻的分辨路進(jìn)行分類可以在需要的時候快速找到你想要的視頻分辨率。當(dāng)然人工去分類是一種比較費時費力的工作,通過軟件也好,程序也罷都是為了可以提高我們的工作效率。下面通過代碼給大家分享使用python對視頻文件分辨率進(jìn)行分組的方法,一起看看吧2021-10-10
PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
這篇文章主要介紹了PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

