在上述代码中,首先使用cv2.getGaussianKernel函数生成一个高斯滤波器的核,其中ksize参数代表核的大小,sigma参数代表高斯函数的标准差。然后,使用cv2.filter2D函数对原图像进行卷积操作,得到处理后的图像。最后,使用cv2.imshow函数显示原图和处理后的图像,并通过cv2.waitKey和cv2.destroyAllWindows函数控制显示窗口的关闭。
cv2.destroyAllWindows() 3. 高斯滤波(Gaussian Filtering) 高斯滤波是一种基于高斯函数的平滑滤波器,它通过计算像素及其邻域内像素的加权平均值来平滑图像。高斯滤波在减少噪声的同时,能够较好地保留图像的边缘信息。 Python实现 # 使用高斯滤波 smoothed_image = cv2.GaussianBlur(image, (kernel_size, kernel_size),...
getGaussianKernel cv::Mat cv::getGaussianKernel( int n, double sigma, int ktype ) { const int SMALL_GAUSSIAN_SIZE = 7; //定义了固定的filter即Kernels. static const float small_gaussian_tab[][SMALL_GAUSSIAN_SIZE] = { {1.f}, {0.25f, 0.5f, 0.25f}, {0.0625f, 0.25f, 0.375f, 0.25...
cv2.imshow('Gaussian',g) cv2.imshow('bilateral',b) cv2.waitKey() cv2.destroyAllWindows() 运行结果如下图,左为原图像,中间是高斯滤波得到的图像,右为双边滤波后的图像。 可以看出,经过高斯滤波的图像边缘被模糊虚化了,而经过双边滤波的图像得到了较好的保留。 6.6 2D卷积(自定义滤波) 上述滤波方法中,卷积...
img = cv2.imread('./image/Gaussian.png') # 高斯去噪 img2 = cv2.GaussianBlur(img, (3, 3), 0) # 展示图像 cv2.imshow('img', img) cv2.imshow('img2', img2) cv2.waitKey(0) 3.3 中值滤波(胡椒噪音) 对胡椒噪音去噪明显,取中间的值作为卷积结果 dst = cv2.medianBlur(img, ksize) img:输...
self.kernel = self.gaussian_kernel() def gaussian_kernel(self): kernel = np.zeros(shape=(self.kernel_size, self.kernel_size), dtype=np.float) radius = self.kernel_size//2 for y in range(-radius, radius + 1): # [-r, r]
src=cv2.imread("image/1.jpg")# 1.自定义锐化核kernel=numpy.float32([[0,-1,0],[-1,5,-1],[0,-1,0]])dst1=cv2.filter2D(src,-1,kernel)# 2.USM锐化(UnsharpMask)gaussian=cv2.GaussianBlur(src,(5,5),6)dst2=cv2.addWeighted(src,2,gaussian,-1,0)cv2.imshow("src",src)cv2.imshow(...
signal import convolve2d# Create a list of kernel names for labelingkernel_names = ['Original Image', 'Grayscale', 'Horizontal Sobel', 'Vertical Sobel', 'Left Diagonal', 'Right Diagonal', 'Edge Detection', 'Sharpen', 'Box Blur', 'Gaussian Blur']# Create a 2x5 subplot gridfig...
img=cv2.imread('scraths.jpg')gray_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 高斯平滑,为了消除图像中的噪声gaussian_img=cv2.GaussianBlur(gray_img,(5,5),0)# Canny算子gaussian_canny_edges_img=cv2.Canny(gaussian_img,100,200,5)canny_edges_img=cv2.Canny(gray_img,100,200,5)cv2.imshow('cann...
可以使用函数cv2.getGaussianKernel()创建高斯内核 代码: import cv2 import numpy as np import matplotlib.pylab as plt img = cv2.imread('img.jpg') blur = cv2.GaussianBlur(img,(5,5),0) plt.subplot(121),plt.imshow(img),plt.title('Original') ...