Я использую C++. Я хочу напечатать матрицу объекта Mat на разных линиях, как это:Печать Матовая матрица на разных линиях
То, что я прямо сейчас
cout << m <<endl <<endl;
Может кто-нибудь помочь с этим, пожалуйста?
Я использую C++. Я хочу напечатать матрицу объекта Mat на разных линиях, как это:Печать Матовая матрица на разных линиях
То, что я прямо сейчас
cout << m <<endl <<endl;
Может кто-нибудь помочь с этим, пожалуйста?
Если вы хотите распечатать его в командную строку, я предлагаю смотреть на OpenCV: Matrix Iteration
Если вы делаете это довольно часто, хотя и не очень рекомендуется, вы можете получить свой собственный класс Matrix и переопределить оператор <<
(как в ссылке выше)
В этом случае (со ссылкой на комментарии) вам нужно напечатать ваши матрицы по-разному. Используйте m.row() и m.at(). Предположим, что у вас есть матрицы 3x3, как на картинке:
for (int i = 0; i < 3; ++i)
{
Mat row1 = m1.row (i);
Mat row2 = m2.row (i);
Mat row3 = m3.row (i);
// this can be replaced by a loop, I spell it out for the sake of clearness
cout << row1.at(0, 0) << " " << row1.at (0, 1) << " " << row1.at (0, 2) << "\t"
<< row2.at(0, 0) << " " << row2.at (0, 1) << " " << row2.at (0, 2) << "\t"
<< row3.at(0, 0) << " " << row3.at (0, 1) << " " << row3.at (0, 2) << endl;
}
Извините, я не знаю, почему последняя строка не появляется. Это cout << matrix_f << endl << endl; – Steph
Я исправил форматирование, но можете ли вы объяснить, что m или matrix_f (объявление)? – wimh
жаль, что я забыл упомянуть. «matrix_f» - это имя объекта Mat (Mat matrix_f;) – Steph