Я пытаюсь реализовать программу распознавания digi с c ++ и opencv3, когда я определяю переменную с помощью KNearest, я получаю эту ошибку:
main.cpp:19:18: error: variable or field 'RunSelfTest' declared void
void RunSelfTest(KNearest& knn2);
^
main.cpp:19:18: error: 'KNearest' was not declared in this scope
main.cpp:19:18: note: suggested alternative:
In file included from c:/OpenCV/build/include/opencv2/ml/ml.hpp:48:0,
from main.cpp:1:
c:/OpenCV/build/include/opencv2/ml.hpp:397:20: note: 'cv::ml::KNearest'
class CV_EXPORTS_W KNearest : public StatModel
это мой код:
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/ml/ml.hpp"#include <iostream>
#include <stdio.h>
using namespace cv;
using namespace std;
void RunSelfTest(KNearest& knn2);
void AnalyseImage(KNearest knearest);
я совершенно не могу найти где проблема
Вы хотите использовать cv::ml::KNearest
но вы пытаетесь сослаться на это как KNearest
в то время как using namespace cv
,
Но KNearest
также внутри ml
пространство имен внутри cv::
, Попробуй это:
ml::KNearest
(Или удалить using namespace …;
из вашего кода, так как это плохая практика во всяком случае, и просто сослаться на это как cv::ml::KNearest
.)