2014-02-18 2 views
0

У меня есть следующая ошибка, когда я пытался создать ROI из исходного изображения. Я понимаю значение ошибки (я имею в виду, я понимаю причину). Но я не понимаю, какая строка моего кода дает мне эту ошибку? В моем коде есть несколько мест, где я создаю ROI из исходного фрейма.Как понять ошибку «Assertion failed» в openCV?

Ошибка:

OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <=  m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in Mat, file /tmp/buildd/ros-hydro-opencv2-2.4.6-3precise-20140130-1854/modules/core/src/matrix.cpp, line 323 
terminate called after throwing an instance of 'cv::Exception' 


what(): /tmp/buildd/ros-hydro-opencv2-2.4.6-3precise-20140130-1854/modules/core/src/matrix.cpp:323: error: (-215) 0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows in function Mat 

ответ

0

Там нет никакого способа узнать, какая строка кода исключение броска, если вы делаете что-то, чтобы найти его, например:

  1. Используйте отладчик и разбить на каждой строке, которая использует ROI
  2. Поместите блок Try-Catch вокруг каждой строки, в которой используется ROI и выпишите ошибку.

Из опыта использования ROI, вероятно, вы пытаетесь подмножить изображение с ROI где-то, и у вас заканчиваются границы. ИЛИ Ваш ROI имеет размер 0,0.

2

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

Если вы не можете этого сделать, поставьте printf("ok1"); и т. Д. Перед каждым вызовом roi.

+0

Хмм, но не существует способа узнать, какая линия дает проблемы с этой ошибкой? – skm

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