当我必须使用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有什么区别?
(我假设两者在图像与内核的卷积中起着相同的作用,我可能是错的)
答案 0 :(得分:0)
我不确定是否能收到您的问题,但是使用OpenCV,您只能运行恒定预定义过滤器。但是使用Keras,您可以了解特定于您的问题和数据集的权重!