2013-02-13 4 views
1

Я использую BackgroundsubtractorMOG(), чтобы в основном извлечь маску для выделения переднего плана. Затем я использую convexHull() на маске для определения местоположения движущегося объекта. неВыпуклый корпус на маске, выпущенной BackgroundSubtractorMOG

Но я получаю следующее сообщение об ошибке:

openCV Error: Assertion failed (nelems >= 0 && (depth == CV_32F || depth == CV_32S)) in convexHull, file /home/ameya/OpenCV2.4.2/modules/imgproc/src/contours.cpp, line 1947 
terminate called after throwing an instance of 'cv::Exception' 
    what(): /home/ameya/OpenCV2.4.2/modules/imgproc/src/contours.cpp:1947: error: (-215) nelems >= 0 && (depth == CV_32F || depth == CV_32S) in function convexHull 

Я проверил нет. элементов, а также матрицу масок с типом. Но ошибка все еще сохраняется. Кто-нибудь сталкивался с подобной проблемой раньше. Я использую OpenCV 2.4.2

+0

это либо неправильное количество элементов, передаваемых в функцию или неправильного типа (не 32F поплавка или 32S подписанный int), поскольку ошибка демонстрирует его – Georges

ответ

0

Вы вызываете выпуклый образ на изображении вашей маски?

Предполагается работать с векторами point2d (или index), например. от findContours()

+0

Я работаю с Point2f вектором точек. Я предоставляю функцию convexHull() с индексами белых пикселей в маске. – Ameya005

+0

ой, извините, это было бы слишком легким случаем;) – berak

2

Используйте этот формат, это поможет (уведомление типажей к Mat):

convexhull(Mat(inputarray),hull,0,0) 

 Смежные вопросы

  • Нет связанных вопросов^_^