python - OpenCV - 改变 filter2D 功能

标签 python opencv numpy

为了将内核与图像进行卷积,我使用:

 output = cv2.filter2D(image,-1,kernel)

这将返回我正在寻找的卷积图像,但是我需要将高度和宽度都修剪 2。例如,它当前正在返回 output.shape = (157, 298) 并且我需要它返回 (155,296) 。 我无法更改镜像或内核。

有没有办法从 image[1,1](而不是 [0,0])开始并在 [-1, -1] 为了从两个轴上修剪 2?

最佳答案

您不必“改变”图像,只需将其切片即可。无论是之前还是之后,在边缘处可能会产生微妙不同的效果:

output = cv2.filter2D(image, -1, kernel)[1:-1, 1:-1]

output = cv2.filter2D(image[1:-1, 1:-1], -1, kernel)

关于python - OpenCV - 改变 filter2D 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32642421/

相关文章:

python - 使用 opencv python 根据图像大小对图像进行网格化

python - 通过 VB 运行 Python 脚本时遇到问题

python - Keras - 检查目标时出错

python - 类 'int' 未定义 '__getitem__' ,因此 '[]' 运算符不能在其实例上使用

python - 如何访问命令行参数?

python - 霍夫圆中标量变量错误的无效索引

python - 按组计算几何平均值

python - 如何使用python opencv模糊图像中的红色以使其不清晰可见?

python - 如何在 PySide6 中使用 QT6 Dark Theme?

python - 从二进制文件中特定位置读取整数的性能问题