tybik 0 Жалоба Опубликовано October 20, 2010 Здраствуйте. У меня возникла глупая проблема. Я разбираюсь с facedetect. там есть vector. Я его определяю так: #include <vector> using std::vector; ........ vector <Rect> objects; и мне выдается ошибка на этой строке [C++ Error] Unit1.cpp(50): E2015 Ambiguity between 'Rect' and '_fastcall Classes::Rect(int,int,int,int)' я так понимаю ошибка с определинием <Rect>. Если написать не Rect а Trect. тоесть vector <TRect> faces;, то при вызове функции cascade.detectMultiScale( smallImg, faces,1.1, 2, 0 |CV_HAAR_SCALE_IMAGE,cv::Size(30, 30) ); возникает ошибка [C++ Error] Unit1.cpp(89): E2064 Cannot initialize '_STL::vector<Rect,_STL::allocator<Rect> > &' with '_STL::vector<TRect,_STL::allocator<TRect> >' Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 20, 2010 cv::Rect? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
tybik 0 Жалоба Опубликовано October 20, 2010 rect не является членоом класса CV. я попробовал компилятор выдает такую ошибку. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 20, 2010 cv надо писать маленькими буквами. Это не класс, а namespace, Rect определён в нём. Ошибка "Ambiguity between 'Rect' and ..." говорит о том, что компилятор не знает какой именно Rect ему использовать. Декларация cv::Rect прямо указывает компилятору, что надо использовать Rect из OpenCV. Должно работать. В крайнем случае, напиши Rect_<int> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
tybik 0 Жалоба Опубликовано October 20, 2010 Большое спасибо. Что то я и правда сглупил написав вместо cv Cv. Все заработало.) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах