Перейти к содержимому
Compvision.ru
Randel

Странное исключение

Recommended Posts

#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)"

Причем, если продолжать выполнение программы, то в результате все получится правильно, характерные точки выделятся и будут отображены.

Но как победить эту беду?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

походу что то связанное с 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

проверте свои длл и настройки проекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точно, спасибо! На 2012 студии пытался использовать либы, созданные под 2010. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще вопрос появился по feature detectors. Решил здесь написать, чтобы новые темы не плодить.

А можно ли как-то задавать "радиус" согласованных характерных точек при матчинге. То есть, чтобы найденные совпадения были преимущественно равномерно распределены по изображению. Иначе, например, в одном углу 100 соответствий, а в других по 2. И это "утянет" в сторону RANSAC при решении системы уравнений. В хэлпе искал - не видел... :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще вопрос появился по feature detectors. Решил здесь написать, чтобы новые темы не плодить.

А можно ли как-то задавать "радиус" согласованных характерных точек при матчинге. То есть, чтобы найденные совпадения были преимущественно равномерно распределены по изображению. Иначе, например, в одном углу 100 соответствий, а в других по 2. И это "утянет" в сторону RANSAC при решении системы уравнений. В хэлпе искал - не видел... :unsure:/>/>

См. пример opencv\samples\cpp\video_homography.cpp

И там есть такая строчка:

GridAdaptedFeatureDetector detector(new FastFeatureDetector(10, true), DESIRED_FTRS, 4, 4);

Это, вроде бы то, что Вам нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×