opencv python 7 模糊操作

2021-09-17 23:45:15 字數 3316 閱讀 7985

dst = cv.blur(image,(5,5)) # (5,5)卷積核大小

用途:適用於隨機雜訊

dst = cv.medianblur(image,5)

用途:適用於椒鹽雜訊

kernel = np.ones([5,5],np.float32)/25 # 除以25防止數值超過255,溢位

dst = cv.filter2d(image,-1,kernel=kernel)

用途:使用者根據需要,自定義,靈活性好

kernel = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]],np.float32) #使用了影象的銳化運算元

dst = cv.filter2d(image,-1,kernel=kernel)

cv.imshow('sharp_demo',dst)

用途:用於影象增強,突出邊框特徵

下面是**演示

import cv2 as cv

import numpy as np

# 均值模糊,可以去燥,對隨機雜訊效果好

def blur_demo(image):

dst = cv.blur(image,(5,5)) # (5,5)卷積核大小

cv.imshow('blur',dst)

# 中值模糊,對椒鹽雜訊效果好

def median_blur_demo(image):

dst = cv.medianblur(image,5)

cv.imshow("median_blue",dst)

# 自定義

def custom_blur_demo(image):

kernel = np.ones([5,5],np.float32)/25 # 除以25防止數值超過255,溢位

dst = cv.filter2d(image,-1,kernel=kernel)

cv.imshow('custom_blur',dst)

# 利用自定義模糊,實現影象的銳化

def sharp_demo(image):

kernel = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]],np.float32)

dst = cv.filter2d(image,-1,kernel=kernel)

cv.imshow('sharp_demo',dst)

src = cv.imread('d:/images/lenanoise.png')

cv.imshow('input image',src)

blur_demo(src)

median_blur_demo(src)

custom_blur_demo(src)

sharp_demo(src)

cv.waitkey(0)

cv.destroyallwindows()

執行效果

帶有權重的均值模糊,是均值模糊的一種擴充套件。去噪的效果更好。

高斯模糊對高斯雜訊有明顯的抑制作用

看下面的**

import cv2 as cv

import numpy as np

# 方式溢位

def clamp(pv):

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):

for col in range(w):

s = np.random.normal(0,20,3)

b = image[row,col,0]

g = image[row,col,1]

r = image[row,col,2]

image[row,col,0] = clamp(b + s[0])

image[row,col,1] = clamp(g + s[1])

image[row,col,2] = clamp(r + s[2])

cv.imshow('guassian_nosie_image',image)

src = cv.imread('d:/images/demo.png')

cv.imshow('input image',src)

dst = cv.gaussianblur(src,(0,0),15)

cv.imshow('gaussian_blur',dst)

# 加入高斯雜訊

t1 = cv.gettickcount()

gaussian_noise(src)

t2 = cv.gettickcount()

print('time consume:%.2fs'%((t2-t1)/cv.gettickfrequency()))

# 對加入高斯雜訊後的影象進行高斯模糊

cv.imshow('gaussian_blur_after_gaussnoise',cv.gaussianblur(src,(5,5),0))

cv.waitkey(0)

cv.destroyallwindows()

執行結果

time consume:2.49s

時間消耗的挺長的

opencv python 7 形態學變換

形態學變換指將數學形態學作為工具從影象提取特徵或用於預處理或後處理的形態學過濾 細化和修剪等,主要針對二值影象。腐蝕即用乙個核掃過整張影象 類似2d卷積 若核中所有畫素均為1則置該畫素為1,否則為0,其結果就是邊界附近的白色畫素被抹去。cv2.erode 實現了該功能。膨脹與腐蝕相反,核中只要由乙個...

OpenCV Python模糊處理

import cv2 as cv import numpy as np 均值模糊 defblur demo img dst cv.blur img,5 5 cv.imshow blur image dst import cv2 as cv import numpy as np 中值模糊 defmed...

ios 7 模糊效果

原文 有時候你會想要使ios7中得某些檢視產生模糊效果,那麼你該怎麼來實現呢?靜態模糊 字面翻譯。首先你要明白,這個技術是新的 以前版本的ios中用到的這種類似的東西被效能所限制,你只能截圖當前的view來獲得乙個image然後渲染模糊。但是在ios6中,你用renderincontext 方法來動...