Мат доступа элемент OpenCV2.3 - PullRequest
0 голосов
/ 12 марта 2012

Я прочитал несколько постов о доступе к элементу Mat и провел несколько испытаний, но все не удалось. Может ли кто-нибудь дать мне подсказку?

Mat vect(1,3, CV_32FC1);     
typedef Vec<float,1> Vec1f;  //**
// access ele. at (1,1)
vect.at<Vec1f>( Point(1,1 )) = 5;  // I used 1 channel so I defined a new element type as a workaround

Я адаптировал код из этого поста доступ к многоканальному элементу opencv

И, хотя эту строку // ** можно объявить так:

typedef Vec<float> Vec1f;

согласно строке 582 в core.hpp: Vec (_Tp v0); //! <1-элементный векторный конструктор </p>

Однако, это также не работает

Я применил тот же метод для 2D-матрицы, тогда все в порядке:

Mat warp_mat(2,3, CV_32FC1);
typedef Vec<float,1> Vec1f;

warp_mat.at<Vec1f>( Point(0,0 )) = 1;
warp_mat.at<Vec1f>( Point(1,0 )) = 2;
warp_mat.at<Vec1f>( Point(2,0 )) = 5;
warp_mat.at<Vec1f>( Point(0,1 )) = 4;
warp_mat.at<Vec1f>( Point(1,1 )) = 5;
warp_mat.at<Vec1f>( Point(2,1 )) = 0;

работает нормально!

1 Ответ

0 голосов
/ 12 марта 2012

http://aishack.in/tutorials/opencvs-c-interface/

Mat a = Mat (4,3, CV_32FC1);

float elem_a = a.at (i, j);// доступ к элементу aij, с i от 0 до row-1 и j от 0 до cols-1

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