前提条件
使用工具python3.x
使用库numpy;opencv,
api简介
1.cv.blur()
对某一方向进行模糊操作
2.cv.medianBlur()
中值模糊
2.cv.filter2D
对图片进行2D卷积
代码示例
import cv2 as cv
import numpy as np
def blurDemo(image):
dst = cv.blur(image, (1,15)) #(1,15)=>(rows,cols) 水平方向和垂直方向模糊
cv.imshow('blurDemo',dst)
def medianBlurDemo(image): #中值模糊,降噪(就是除去斑点,小黑点),根据卷积原理
dst = cv.medianBlur(image, 5)
cv.imshow("medianBlurDemo", dst)
def customBlurDemo(image):#自定义中值模糊
#5*5的卷积核
#5*5=25
# kernel = np.ones([5,5], np.float32)/25 #保证不溢出255
#3*3=9
# kernel = np.array([[1,1,1],[1,1,1],[1,1,1]], np.float32)/9
#里面数组的值和为0,1 0:提取边缘。1:增强对比度什么的
#几种操作
kernel = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]], np.float32)
# kernel = np.array([[0,-1,-1],[-1,5,-1],[0,-1,0]], np.float32)
dst = cv.filter2D(image, -1, kernel=kernel) #进行2D卷积
cv.imshow("customBlurDemo", dst) #输出卷积结果
src=cv.imread("D:/openCV_image/image/1.png")
# src=cv.imread("D:/openCV_image/image/2_2.png")
print(src)
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
# blurDemo(src)
# medianBlurDemo(src)
customBlurDemo(src)
cv.waitKey(0)
cv.destroyAllWindows()