почему 3-й аргумент cv :: Dlate терпит неудачу? - PullRequest
0 голосов
/ 20 марта 2011

Я тестирую функции эрозии и расширения в openCV2.2, но компиляция не удалась из-за 3-го аргумента, когда я передаю следующую строку:

dilate(gscaleImage, gscaleImage, 0, 18 );

Может кто-нибудь пролить свет на это для меня, пожалуйста, какэто то, как они были закодированы в примерах.Спасибо

Ответы [ 2 ]

1 голос
/ 20 марта 2011

OpenCV имеет интерфейсы C и C ++. Вы вызываете функцию C ++ cv :: dlate, но, судя по аргументам, она фактически должна была быть cvDlate из интерфейса C старого стиля.

1 голос
/ 20 марта 2011

Из документации OpenCV (извините за форматирование):

void dlate (const Mat & src, Mat & dst, const Mat & element, точка привязки = точка (-1, -1), итерации int = 1, int borderType = BORDER_CONSTANT, const Scalar & borderValue = morphologyDefaultBorderValue ())

Третий аргумент - const Mat& element, что определенно не int, как 0. Что именно вы пытаетесь достичь?

Для итераций я бы сделал:

dilate(gscaleImage, gscaleImage, 0, iterations = 18);
...