Как вызвать cvMorphologyEx в openCV в c ++? - PullRequest
1 голос
/ 21 февраля 2012

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

cvMorphologyEx(src1,dest1,NULL,NULL,CV_MOP_OPEN);

Он компилируется нормально, но во время работы выдает мне эту ошибку

Ошибка OpenCV: неправильный флаг (поле параметра или структуры) (нераспознанный или неподдерживаемый тип массива) в неизвестной функции, файл ........ \ ocv \ opencv \ src \ cxcore \ cxarr ay.cpp, строка 2476

Я уверен, что проблема в третьем и четвертом аргументах, но в документации говорится, что они являются необязательными.

Если вам нужны дополнительные сведения, пожалуйста, сообщите мне.

Спасибо

Пока

1 Ответ

2 голосов
/ 21 мая 2012

Вы должны создать IplConvKernel и передать его функции, иначе cvMorphologyEx может не знать размер и форму структурирующего элемента, поэтому он не может выполнять какую-либо обработку.

int filterSize = 5;
IplConvKernel *convKernel = cvCreateStructuringElementEx(filterSize, filterSize, (filterSize - 1) / 2, (filterSize - 1) / 2, CV_SHAPE_RECT, NULL);

cvMorphologyEx(src1, dest1, NULL, convKernel, CV_MOP_OPEN);

Позаботьтесь о том, чтобы структурирующий элемент не был обязательным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...