Novato, cabrón, por favor dame un consejo.
Opencv3.0 no tiene SIFT. ¿Qué debo hacer con él? . .
Novato, cabrón, por favor dame un consejo.
{
Mat mat_image_left=Mat(i_left, false);
Mat mat_image_right=Mat(i_right, false);
cv::SiftFeatureDetector * p detector = new cv::SiftFeatureDetector;
pDetector-& gt; _ key _ point);
pDetector-& gt; detect(mat_image_right, right_key_point);
Mat left_image_descriptors, right_image_descriptors
cv::SiftDescriptorExtractor * descriptor _ extractor = nuevo cv::SiftDescriptorExtractor;
descriptor_extractor->compute(mat_image_left, left_key_point, left_image_descriptors);
descriptor_extractor->compute (mat_image_right, right_key_point, right_image_descriptors);
Mat result_l, result_r;
drawKeypoints(mat_image_left, left_key_point, result_l, Scalar::all(-1), 0);
drawKeypoints(mat_image_right, right_key_point, result_r, Scalar::all(-1), 0);
//im show(" resultado _ de _ izquierda _ detector _ sift ", resultado _ l); im show(" resultado _ de _ derecha _ detector _ sift ", resultado _ r);
Resultado del mat _ de _ sift_match
BruteForceMatcher & ltL2<float & gt& gtmatcher
coincidencia. );
imwrite("matches_of_sift.jpg ", resultado _ de _ sift _ match
}
void main()
<); p>{ipimage * n _ left _ image = cvLoadImage(" D:\ \ Lena . jpg ");
ipimage * n _ right _ image = cvLoadImage( " D:\ \ Lena _ r . jpg ");
sift_detector_and_descriptors(n_left_image,n_right_image);
cvWaitKey(0);
}
Este es mi código para implementar la coincidencia SIFT, así que puedo entender por qué usas drawMatchesKnn(). Cada versión admite tamizado, independientemente de la versión.