Randel 0 Жалоба Опубликовано December 5, 2012 #include <stdio.h> #include "cv.h" #include "highgui.h" #include "opencv2/opencv.hpp" #include "opencv2/core/core.hpp" #include "opencv2/nonfree/features2d.hpp" #include "opencv2/features2d/features2d.hpp" #include <vector> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { Mat image = imread( "C:\\input.jpg",0 ); //Загрузить изображение с диска int minHessian = 400; SurfFeatureDetector detector( minHessian ); std::vector<KeyPoint> keypoints; detector.detect(image, keypoints); drawKeypoints(image,keypoints,image,0,0); imshow("image", image ); return 0; } При выполнении данный код, который был взят из примера выдает ошибку "_CrtIsValidHeapPointer(pUserdata)" Причем, если продолжать выполнение программы, то в результате все получится правильно, характерные точки выделятся и будут отображены. Но как победить эту беду? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано December 5, 2012 походу что то связанное с CRT http://msdn.microsoft.com/en-us/library/ys6cfhhh%28v=vs.71%29.aspx If a dynamic-linked library (DLL) contains a static link to the run-time library, then it has its own instance of the run-time heap, and therefore its own heap, independent of the application's local heap. http://msdn.microsoft.com/en-us/library/abx4dbyh%28VS.80%29.aspx проверте свои длл и настройки проекта. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Randel 0 Жалоба Опубликовано December 7, 2012 Точно, спасибо! На 2012 студии пытался использовать либы, созданные под 2010. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Randel 0 Жалоба Опубликовано December 7, 2012 Еще вопрос появился по feature detectors. Решил здесь написать, чтобы новые темы не плодить. А можно ли как-то задавать "радиус" согласованных характерных точек при матчинге. То есть, чтобы найденные совпадения были преимущественно равномерно распределены по изображению. Иначе, например, в одном углу 100 соответствий, а в других по 2. И это "утянет" в сторону RANSAC при решении системы уравнений. В хэлпе искал - не видел... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 7, 2012 Еще вопрос появился по feature detectors. Решил здесь написать, чтобы новые темы не плодить. А можно ли как-то задавать "радиус" согласованных характерных точек при матчинге. То есть, чтобы найденные совпадения были преимущественно равномерно распределены по изображению. Иначе, например, в одном углу 100 соответствий, а в других по 2. И это "утянет" в сторону RANSAC при решении системы уравнений. В хэлпе искал - не видел... :unsure:/>/> См. пример opencv\samples\cpp\video_homography.cpp И там есть такая строчка: GridAdaptedFeatureDetector detector(new FastFeatureDetector(10, true), DESIRED_FTRS, 4, 4); Это, вроде бы то, что Вам нужно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах