设置扩张内核锚点
Set Dilation Kernel Anchor
我想了解如何在 dilation 的 OpenCV 中控制内核锚点。这是我的示例代码来解释我的想法:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((7, 7))
img[3, 3] = 255
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 2), anchor=(0, 0))
print(kernel)
img = cv2.dilate(img, kernel)
plt.imshow(img, cmap='gray')
plt.show()
这是相应的输出:
当我将内核锚点更改为 (0, 1)
、
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 2), anchor=(0, 1))
我预计膨胀会向上,但我得到的结果完全相同。有人对此有解释吗?
提前致谢!
您需要设置的锚点不是在函数 cv2.getStructuringElement 中,而是在函数 cv2.dilate.
中
img = cv2.dilate(img, kernel, anchor=(0, 1))
或
img = cv2.dilate(img, kernel, anchor=(0, 0))
我想了解如何在 dilation 的 OpenCV 中控制内核锚点。这是我的示例代码来解释我的想法:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((7, 7))
img[3, 3] = 255
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 2), anchor=(0, 0))
print(kernel)
img = cv2.dilate(img, kernel)
plt.imshow(img, cmap='gray')
plt.show()
这是相应的输出:
当我将内核锚点更改为 (0, 1)
、
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 2), anchor=(0, 1))
我预计膨胀会向上,但我得到的结果完全相同。有人对此有解释吗?
提前致谢!
您需要设置的锚点不是在函数 cv2.getStructuringElement 中,而是在函数 cv2.dilate.
中img = cv2.dilate(img, kernel, anchor=(0, 1))
或
img = cv2.dilate(img, kernel, anchor=(0, 0))