First time here? Check out the FAQ!

Ask Your Question
0

ORB assertion failed with OpenCV 3.0.0 [closed]

asked Jan 19 '17

ptemple gravatar image

updated Jan 19 '17

Hi there, I'm trying to use ORB points of interest to try to retrieve an object into an image (compute points of interest; then associated descriptors and finally try to see if we can pair them and retrieve a transformation).

Here is a part of the code I use :

Ptr<cv::ORB> descriptor_ORB;
descriptor_ORB = cv::ORB::create(/*some values from a configuration file with atoi() and atof() to format values*/);

Mat model = imread(filename); //string filename -> the name of an image file
std::vector<KeyPoint> keypoints_model;
cout << "size model : " << model.cols << "\t" << models.rows << endl; //display 123 and 62 -> successfully load
Mat gray_model = model;
cvtColor(gray_model, gray_model, COLOR_BGR2GRAY); // convert to grayscale as in examples
descriptor_ORB -> detect (gray_model, keypoints_model); // compute ORB points of interest on grayscale image and put the points in the keypoints_model vector

This last line gives me an assertion failure :

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 Matrix.cpp, line 499

Is it normal ? It is likely that the detect function is unable to retrieve any points of interest...

To avoid early, termination I put the detect call in a try/catch statement.

Preview: (hide)

Closed for the following reason the question is answered, right answer was accepted by ptemple
close date 2017-01-20 09:12:37.777767

Comments

You have to create descriptor :

Ptr<cv::ORB> descriptor_ORB=ORB::create();

PS Please use icon 101010 to format your code

LBerger gravatar imageLBerger (Jan 19 '17)edit

Yes, sorry, I forgot this line; I edited the post, I use some values from a configuration file to create the structure.

ptemple gravatar imageptemple (Jan 19 '17)edit

There is no problem with your program even with a flat image. Update to 3.2?

LBerger gravatar imageLBerger (Jan 19 '17)edit

Why do I get the assertion then ? Are there any requirements on the value given to the ORB::create() function (like min/max boundary values) that would trigger the assertion ?

ptemple gravatar imageptemple (Jan 19 '17)edit

I tried your program with my first comment and an image size 123 cols and 62 rows. There is no exception. When I wrote this sample in opencv 3.0. No error canyou try this sample using this image ?

LBerger gravatar imageLBerger (Jan 19 '17)edit

When using your code your image given twice (for both arguments); the execution reveals some assertion failure for different descriptors : for AKAZE-DESCRIPTOR_KAZE_UPRIGHT and the hamming distance; your usage of ORB seems ok though; my configuration given by ORB::create() is as follows :

b = ORB::create(400,0,8,31,0,2,0,31,20);

the last 0 should be an index to something but I don't know which are available so... and my configuration leverage some assertion failure

OpenCV error : Assertion failed (s >= 0) in setSize, matrix.cpp, line 297
ptemple gravatar imageptemple (Jan 20 '17)edit

1 answer

Sort by » oldest newest most voted
1

answered Jan 20 '17

ptemple gravatar image

In b = ORB::create(400,0,8,31,0,2,0,31,20);

the second argument should be a float greater or equals to 1 according to the documentation at http://docs.opencv.org/trunk/db/d95/classcv_1_1ORB.html (http://docs.opencv.org/trunk/db/d95/c...)

while I set it to 0

Preview: (hide)

Comments

Sorry not enough time to help you but you solve it alone :D

LBerger gravatar imageLBerger (Jan 20 '17)edit

Could you add a check in the code with a more relevant message then please ?

ptemple gravatar imageptemple (Jan 20 '17)edit

where do you want a relevant message

LBerger gravatar imageLBerger (Jan 20 '17)edit

In the code of OpenCV; in the function detect or create for instance

ptemple gravatar imageptemple (Jan 20 '17)edit

Question Tools

1 follower

Stats

Asked: Jan 19 '17

Seen: 773 times

Last updated: Jan 19 '17