如何在 python2.7 中使用 cv2 制作新滤镜并将其应用于图像?
例如:
kernel = np.array([[-1, -1, -1],
[-1, 4, -1],
[-1, -1, -1]])
我是 opencv 的新手,所以如果你能解释一下那就太好了。谢谢!
最佳答案
就将自定义内核应用于给定图像而言,您可以简单地使用 filter2D方法来提供自定义过滤器。您也可以复制以下代码来开始。但是当前过滤器的结果似乎有点奇怪:
import cv2
import numpy as np
# Create a dummy input image.
canvas = np.zeros((100, 100), dtype=np.uint8)
canvas = cv2.circle(canvas, (50, 50), 20, (255,), -1)
kernel = np.array([[-1, -1, -1],
[-1, 4, -1],
[-1, -1, -1]])
dst = cv2.filter2D(canvas, -1, kernel)
cv2.imwrite("./filtered.png", dst)
输入图片:
输出图像:
编辑:根据@Dolphin建议的编辑,使用中心值为 8 的内核,在圆形二进制盘的情况下会得到很好的结果。
关于python - 如何在python2.7中使用cv2制作一个新的过滤器并将其应用于图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685757/