2013-02-23 2 views

ответ

0

Пробег: cv::Mat::row() и cv::Mat::col().

+0

снова, осторожно с col(), так как вы не манипулируете базовым буфером, а копируете! – berak

+0

um, документация метода говорит что-то еще. Он возвращает заголовок с данными в исходной матрице. Там могут быть проблемы при назначении некоторых в одной матрице, но это не так. Чтобы быть уверенным, можно использовать ['cv :: Mat :: copyTo()'] (http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-copyto). – morynicz

+0

awww, ты заставил меня снова подумать. должен был сделать тестовый тест, прежде чем вводить ответ. моя вина!. также, поскольку я не могу понизить свой собственный ответ, не могли бы вы сделать это для меня, пожалуйста? – berak

0

есть «са конструктор для Mat (и оператора присваивания, тоже), которая принимает вектор в качестве входных данных, так же относится и к строкам мата (которые являются Мат снова)

Mat big(5,5,CV_32S); // 5x5, 1channel, int mat 
vector<int> vec(5); vec[0]=1; vec[2] = 17; vec[4]=13; // make a row vec 

big.row (1) = vec; // осторожна, не работает окра(), так что возвращает копию

0 0 0 0 0 
1 0 17 0 13 
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 

я был здесь не так, извините. как row(), так и col() делают копию исходных данных, поэтому присвоение этому бесполезно.

+0

Вниз проголосовали по просьбе автора. – morynicz

Смежные вопросы