关于卷积 这篇博文安利
https://blog.csdn.net/m0_38032942/article/details/82230059
高斯滤波的
https://www.cnblogs.com/qiqibaby/p/5289977.html
卷积核就是图像处理时,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权值由一个函数定义,这个函数称为卷积核。
其主要方法是通过确定的核块来检测图像的某个区域,之后根据所检测的像素与其他周围存在的像素的来读差值来改变像素明亮度。
一个三维的卷积核 作用是计算中央像素与周围像素的亮度差值 如果亮度差距过大 本身图像的中央亮度较少 经过卷积后 中央亮度会增加使之更加突出。
kernel33 = np.array[[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]
同样下面的卷积核是减少中心亮度 使之亮度更小。
kernel33 = np.array[[1,1,1],[-1,8,-1],[1,1,1]]
eg(文件路径千万别是中文!!!)
import numpy as np
import cv2
from scipy import ndimage
kernel33 = np.array([[-1,-1,-1],
[-1, 8,-1],
[-1,-1,-1]])
kernel33_D = np.array([[1 , 1, 1],
[-1, 8,-1],
[ 1, 1, 1]])
img = cv2.imread("C:/Users/Administrator/Desktop/p/lena.jpg",0) #0代表以灰度图读取
cv2.imshow("img",img)
lightImg = ndimage.convolve(img,kernel33_D)
cv2.imshow("img",lightImg)
cv2.waitKey()
可以看到图像失真较为严重 这是由于卷积降低的过大
下面使用高斯模糊处理
import numpy as np
import cv2
from scipy import ndimage
img = cv2.imread("C:/Users/Administrator/Desktop/p/lena.jpg",0)
blurred = cv2.GaussianBlur(img,(11,11),0)
gaussImg = img - blurred
cv2.imshow("img",gaussImg)
cv2.waitKey()
明显可以看出高斯滤波处理效果更好
filter2D
https://blog.csdn.net/keith_bb/article/details/53103026
CV2.filter2D(src,-1,kernel,dst)