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;
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.