Установите Якорь Расширения Ядра - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь понять, как управлять ядром ядра в 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()

и вот соответствующий вывод:

enter image description here

Когда я изменяю якорь ядра относительно (0, 1),

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 2), anchor=(0, 1))

Я ожидаю, что расширение будет вверх, но я получаю точно такой же результат. У кого-нибудь есть объяснение этому?

Заранее спасибо!

1 Ответ

1 голос
/ 04 мая 2020

Вам нужно установить привязку не в функции cv2.getStructuringElement, а в функции cv2.dlate.

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

или

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