filter2D和Conv2D有什么区别?

时间:2019-11-05 02:28:05

标签: python opencv keras deep-learning computer-vision

当我必须使用opencv锐化图像时,我使用:

#Create our shapening kernel    
kernel_sharpening = np.array([[0,-1,0], 
                              [-1, 5,-1],
                              [0,-1,0]])

# applying the sharpening kernel to the input image & displaying it.
sharpened = cv2.filter2D(image, -1, kernel_sharpening)

在上面的代码中,锐化后的结果是我们的图像。如您在上面的代码中看到的,我使用了名为filter2D的opencv函数来将输入图像与内核进行卷积,结果得到了清晰的图像。

最近我浏览了有关图像超分辨率(link)的链接

发现Keras具有与filter2D类似的东西,而Keras称之为Conv2D。

其语法如下:

dis2 = Conv2D(filters=64, kernel_size=3, strides=2, padding='same')(dis1)

我的问题是opencv filter2D和Keras Conv2D有什么区别?

(我假设两者在图像与内核的卷积中起着相同的作用,我可能是错的)

1 个答案:

答案 0 :(得分:0)

我不确定是否能收到您的问题,但是使用OpenCV,您只能运行恒定预定义过滤器。但是使用Keras,您可以了解特定于您的问题和数据集的权重!