OpenCV error when using miniflann

I found this code online .. and I wanted to try it>

int main( int argc, char **argv ) { VideoCapture cam1, cam2; //Middle and left cameras //VideoCapture cam3; //Right camera cam1.open(0); cam2.open(1); //cam3.open(2); cam1.set(CV_CAP_PROP_FRAME_WIDTH, 320); cam1.set(CV_CAP_PROP_FRAME_HEIGHT, 240); cam2.set(CV_CAP_PROP_FRAME_WIDTH, 320); cam2.set(CV_CAP_PROP_FRAME_HEIGHT, 240); //cam3.set(CV_CAP_PROP_FRAME_WIDTH, 320); //cam3.set(CV_CAP_PROP_FRAME_HEIGHT, 240); Mat frm1, frm2; while(1) { //Step 1: Get frames from a few cameras cam1 >> frm1; //Reference plane cam2 >> frm2; //Right-side target plane // cam3 >> frm3; if( frm1.empty()||frm2.empty() ) break; //Step2: SURF detection int minHessian = 800; SurfFeatureDetector detector( minHessian ); vector<KeyPoint> keypoints_1, keypoints_2; detector.detect( frm1, keypoints_1 ); detector.detect( frm2, keypoints_2 ); SurfDescriptorExtractor extractor; /// Mat descriptors_1, descriptors_2; extractor.compute( frm1, keypoints_1, descriptors_1 ); extractor.compute( frm2, keypoints_2, descriptors_2 ); //Step 3: Feature matching //-- Matching descriptor vectors with a matcher FlannBasedMatcher matcher; vector< DMatch > matches; matcher.match( descriptors_1, descriptors_2, matches); //vector< vector<DMatch> > matches; //matcher.knnMatch( descriptors_1, descriptors_2, matches,2); double max_dist = 0; double min_dist = 50; //-- Quick calculation of max and min distances between keypoints for( int i = 0; i < descriptors_1.rows; i++ ) { double dist = matches[i].distance; if( dist < min_dist ) min_dist = dist; if( dist > max_dist ) max_dist = dist; } //printf("-- Max dist : %f \n", max_dist ); //printf("-- Min dist : %f \n", min_dist ); //-- Draw only "good" matches (ie whose distance is less than 3*min_dist ) vector< DMatch > good_matches; for( int i = 0; i < descriptors_1.rows; i++ ) { if( matches[i].distance < 2*min_dist ) { good_matches.push_back( matches[i]); } } Mat img_matches; drawMatches( frm1, keypoints_1, frm2, keypoints_2, good_matches, img_matches, Scalar::all(-1), Scalar::all(-1), vector<char>(), DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS ); //-- Localize the object from frame1 in frame2 vector<Point2f> frame1; vector<Point2f> frame2; for( int i = 0; i < good_matches.size(); i++ ) { //-- Get the keypoints from the good matches frame1.push_back( keypoints_1[ good_matches[i].queryIdx ].pt ); frame2.push_back( keypoints_2[ good_matches[i].trainIdx ].pt ); } //Step 4: RANSAC and Homography Mat H = findHomography( Mat(frame2), Mat(frame1), CV_RANSAC, 5.0 ); cout << "Homography for mapping the r-side plane to the ref. plane: " << endl << H << endl; //-- Show detected matches imshow("Matches", img_matches ); //Step 5:Warping Mat result; warpPerspective(frm2,result,H,Size(3*frm1.cols,1.5*frm1.rows)); imshow("Warping result",result); Mat half(result,Rect(0,0,frm2.cols,frm2.rows)); frm1.copyTo(half);//Reference image //Step 6:Blending //Step 7:Showing the panoramic video imshow("Blended view",result); char c=waitKey(20); if (c==27) break; } return 0; } 

However, when I try to run the code, I found this error. I also checked the code in the OpenCV tutorial and they almost exactly match up to the findhomography part.

 OpenCV Error: Unsupported format or combination of formats (type=0) in buildIndex_, file OpenCV-2.3.1/modules/flann/src/miniflann.cpp, line 297 terminate called after throwing an instance of 'cv::Exception' what() OpenCV-2.3.1/modules/flann/src/miniflann.cpp:297: error: (-210) type=0 in function buildIndex_ 

Any ideas could go wrong?

Thank you

+1
image-processing opencv
source share
2 answers

my boss suggested restarting the computer since I used USB cameras .. he said that sometimes you need to restart it on some Linux systems like Ubuntu so that it works again! and guess what? it really worked after rebooting my computer !!!!!!!!!

-5
source share

After fixing my problem:

before step 3 add the following:

 descriptors_1.convertTo(descriptors_1,CV_32F); descriptors_2.convertTo(descriptors_2,CV_32F); 

Hope this helps.

+3
source share

All Articles