OpenCV實現模糊操作

2021-10-06 15:58:59 字數 1551 閱讀 3325

模糊操作的基本原理:1.基於離散卷積,2.定義好每個卷積核,3.不同卷積核得到不同的卷積效果,4.模糊是卷積的一種表象

import cv2 as cv

import numpy as np

def blur_demo(image): # 均值模糊

dst = cv.blur(image, (5, 5)) # (5, 5)模糊引數,第乙個5是水平模糊,第二個5是垂直模糊

cv.imshow("blur_demo", dst)

def median_demo(image): # 中值模糊,對椒鹽雜訊有很好的的去噪效果

dst = cv.medianblur(image, 5) # 5模糊引數

cv.imshow("median_demo", dst)

def custom_demo(image): # 自定義模糊

kernel = np.ones([5, 5], np.float32)/25 # 保證值不會溢位

# kernel = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]], np.float32)/9

# kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32) # 該引數起到銳化效果

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

cv.imshow("custom_demo", dst)

src = cv.imread("c:/users/admin/desktop/16.jpg") # 開啟一張

cv.namedwindow("input image", cv.window_autosize) # 設定尺寸,自動

cv.imshow("input image", src) # 顯示影象

blur_demo(src)

median_demo(src)

custom_demo(src)

cv.waitkey(0)

cv.destroyallwindows()

效果

調整自定義模糊中的引數,可以得到不同的效果

如果設定成如下引數:

設定成

kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)    # 該引數起到銳化效果

OpenCV學習筆記 模糊操作

模糊操作的作用是在時減低雜訊。模糊操作有均值模糊,中值模糊,高斯模糊和自定義模糊 模糊操作的基本原理 1 基於離散卷積 2 定義好每乙個卷積核 3 不同的卷積核得到不同的卷積效果 4 模糊是卷積的一種表象 均值濾波 用卷積核中的全體畫素的平均值來代替原來畫素值 中值濾波 將卷積核中的全體畫素從小到大...

Opencv之高斯模糊

一 高斯模糊 二 實驗 這裡 高斯模糊本質上是低通濾波器,輸出影象的每個畫素點是原影象上對應畫素點與周圍畫素點的加權和,原理並不複雜。做久了卷積神經網路看這個分外親切,就是用高斯分布權值矩陣與原始影象矩陣做卷積運算而已。摘錄wiki上兩段原文 數學上講,對影象做高斯模糊等同於將影象與高斯函式卷積。由...

學習OpenCV 羽化(模糊邊緣)

原文出處 在photoshop裡,羽化就是使你選定範圍的圖邊緣達到朦朧的效果。羽化值越大,朦朧範圍越寬,羽化值越小,朦朧範圍越窄。可根據你想留下圖的大小來調節。演算法分析 1 通過對rgb值增加額外的v值實現朦朧效果 2 通過控制v值的大小實現範圍控制。3 v 255 當前點point距中點距離的平...