|
OpenCV FeatureDetector | ☑ | ||
---|---|---|---|---|
0
megabax
04.01.17
✎
18:03
|
Добрый день. При попытке скомпилировать вот такой код
// OpenSVDemo.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/features2d.hpp" #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace cv; using namespace std; /// Global variables Mat src, src_gray, src_dst; int thresh = 100; int max_thresh = 255; char* source_window = "Source image"; char* corners_window = "Corners detected"; /// Function header void cornerHarris_demo(int, void*); FILE* fp; int count_of_points=0; /** function main */ int main(int argc, char** argv) { src = imread("D:\\3\\10300013.png"); imshow("SDFDS",src); //Ptr<Feature2D> surf=Algorithm::create<Feature2D>(""); Ptr<cv::FeatureDetector> detector = FeatureDetector::create("BRISK"); /*thresh = atoi(argv[3]); fp=fopen(argv[1],"w"); if(fp==NULL) { printf("Open file error"); return 1; } src = imread(argv[2], 1);//bla.png src_dst = imread(argv[2], 1); cvtColor(src, src_gray, CV_BGR2GRAY); cornerHarris_demo(0, 0); */ waitKey(0); return(0); } на строке на C++Ptr<cv::FeatureDetector> detector = FeatureDetector::create("BRISK"); Выдает сообщение об ошибке: 3 IntelliSense: class "cv::Feature2D" не содержит члена "create" d:\учеба\диссертация\программа\особые точки\детектор\specificpoints\specificpoints.cpp 40 55 SpecificPoints |
|||
1
Живой Ископаемый
04.01.17
✎
18:06
|
Чувак, но это же не форум по манге!
|
|||
2
Cool_Profi
04.01.17
✎
18:52
|
(1) Коллега, ты чертовски прав.
Это форум по хентаю... |
|||
3
megabax
04.01.17
✎
18:59
|
Попробовал сделать вот так:
Mat src = imread("D:\\3\\10300013.png"); Mat dst = imread("D:\\3\\10300013.png"); std::vector<KeyPoint> points=std::vector<KeyPoint>(); BRISK detector=BRISK(); detector.detect(src, points); drawKeypoints(src, points, dst); imshow("Особые точки",src); Но теперь на строке detector.detect(src, points); почему-то вылетает уже во время выполнения |
|||
4
Живой Ископаемый
04.01.17
✎
19:04
|
?Прежде всего, если вы хотите о чем-то спросить, вам нужно сформулировать свой вопрос
|
|||
5
Cool_Profi
04.01.17
✎
19:05
|
Это уже не просто хентай...
Это уже яой... А ты не пробовал обращаться н более профильные формумы? На тот же рсдн, например? |
|||
6
lock19
04.01.17
✎
19:07
|
(0) Возьми OpenCV той версии для которой у тебя есть примеры.
|
|||
7
lock19
04.01.17
✎
19:09
|
(3) Ptr<BRISK> detector = BRISK::create();
А так? |
|||
8
megabax
04.01.17
✎
19:15
|
(7) Сделал так:
Mat src = imread("D:\\3\\10300013.png"); Mat dst = imread("D:\\3\\10300013.png"); std::vector<KeyPoint> points=std::vector<KeyPoint>(); //BRISK detector=BRISK(); Ptr<BRISK> detector = BRISK::create(); detector->detect(src, points); drawKeypoints(src, points, dst); imshow("Особые точки",src); На строке detector->detect(src, points); вылетает, ругается "Необработанное исключение в "0x5bb335f2" в "SpecificPoints.exe": 0xC0000005: Нарушение прав доступа при записи "0x003d6000"." |
|||
9
lock19
04.01.17
✎
19:24
|
Посмотри пример matchmethod_orb_akaze_brisk.cpp из дистрибутива OpenCV
|
|||
10
megabax
04.01.17
✎
20:36
|
(9) спасибо
|
|||
11
lock19
04.01.17
✎
20:53
|
(10) Особо нет за что.
|
|||
12
megabax
05.01.17
✎
13:16
|
(9) Тот запускал в VS2010, вылетело на строке b->detect(img1, keyImg1, Mat());
Компилировал в VS2015, вроде картинки даже показывает, но потом вылетает и исключение https://yadi.sk/i/eD_GL-P7375hG6 подскажите плз, где еще можно покопаться, в какую сторону посмотреть? |
|||
13
lock19
05.01.17
✎
20:59
|
(12) http://answers.opencv.org/question/81817/feature-detector-corrupts-keypoint-vector-in-opencv30-using-msvc-14-_big_allocation_alignment-assertion-message/
Лечится обновлением библиотеки, или резервированием необходимого объёма для векторов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |