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

Проблема вектором типа Rect

Recommended Posts

Здраствуйте.

У меня возникла глупая проблема.

Я разбираюсь с 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> >'

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


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

rect не является членоом класса CV. я попробовал компилятор выдает такую ошибку.

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


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

cv надо писать маленькими буквами. Это не класс, а namespace, Rect определён в нём. Ошибка "Ambiguity between 'Rect' and ..." говорит о том, что компилятор не знает какой именно Rect ему использовать. Декларация cv::Rect прямо указывает компилятору, что надо использовать Rect из OpenCV. Должно работать.

В крайнем случае, напиши Rect_<int>

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


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

Большое спасибо. Что то я и правда сглупил написав вместо cv Cv. Все заработало.)

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×