cv2.filter2D卷积的具体计算过程
默认采用镜像翻转填充,不设置参数等同于borderType=cv2.BORDER_REFLECT_101
borderType=cv2.BORDER_DEFAULT
1 计算过程
2 参考代码
import numpy as np
import cv2
# 创建一个简单的输入图像,假设是一个3x3的灰度图像
image = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=np.float32)
# 创建一个简单的卷积核,假设是一个2x2的均值卷积核
kernel = np.ones((2, 2), dtype=np.float32) / 4
kernel1 = np.ones((3, 3), dtype=np.float32) / 9
# 打印输入图像和卷积核
print("Input Image:")
print(image)
print("Kernel:")
print(kernel)
print("Kernel1:")
print(kernel1)
# 使用cv2.filter2D函数进行2*2卷积操作
result = cv2.filter2D(image, -1, kernel, borderType=cv2.BORDER_REFLECT_101)
# 打印卷积操作后的结果
print("\nResult after 2*2 convolution:")
print(result)
# 使用cv2.filter2D函数进行3*3卷积操作
result1 = cv2.filter2D(image, -1, kernel1, borderType=cv2.BORDER_REFLECT_101)
# 打印卷积操作后的结果
print("\nResult after 3*3 convolution:")
print(result1)