C ++ OpenCV2 cv :: Mat :: copyTo ошибка в Linux - PullRequest
4 голосов
/ 31 июля 2010

при попытке скомпилировать следующий код в OpenCV2 в Linux,

cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
image1(rect1).copyTo(image2(rect2));

Я получаю следующую ошибку:

x.cpp: в функции-члене cv :: Mat Process (cv :: Mat) ’:
x.cpp: 241: ошибка: нет соответствующей функции для вызова for cv :: Mat :: copyTo (cv :: Mat) ’
cxcore.hpp: 794: примечание: кандидаты: void cv :: Mat :: copyTo (cv :: Mat &) const
cxcore.hpp: 796: примечание: void cv :: Mat :: copyTo (cv :: Mat &, const cv :: Mat &) const

Примечание: этот код компилируется и работает безошибочно в Windows.

любая помощь?

1 Ответ

2 голосов
/ 31 июля 2010

Из того, что я вижу здесь , operator () для Mat нуждается в аргументе типа Mat, а не Mat &. Это, кажется, проблема здесь.

Попробуйте добавить временный объект типа Mat. Смотри ниже.

cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
cv::Mat extractedImage2 = image1(rect2);
image1(rect1).copyTo(extractedImage2);

Но я должен сказать, что я не эксперт по openCV, так что это просто ответ, основанный на моих знаниях c ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...