0

我试图了解如何控制扩张的 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))

我希望膨胀会向上,但我得到的结果完全相同。有人对此有解释吗?

提前致谢!

4

1 回答 1

1

您需要在函数 cv2.getStructuringElement 中而不是在函数 cv2.dilate 中设置锚点。

img = cv2.dilate(img, kernel, anchor=(0, 1))

或者

img = cv2.dilate(img, kernel, anchor=(0, 0))
于 2020-05-04T05:41:41.357 回答