c++ - 在 OpenCV Mat 中访问多个 channel

标签 c++ opencv matrix mat

访问多 channel 矩阵的第 i 行 channel::n 的语法是什么。我可以访问 channel::n 的 (i,j) 元素,但是使用 row、rowRange 等函数的语法是什么......

示例代码:

Mat M(10, 3, CV_32SC3);
cout << M.at<Vec3d>(0,0)[1] << endl;  // This works
cout << M.row(0)[1] << endl;    // Syntax of this

最佳答案

Mat.row(0) returns a Mat, so it's the same game as before:

// if it's really INT 3channels(like your ex. above), you have to use m.at<Vec3i> !!
Mat M(10, 3, CV_32SC3);   

// 3rd row
Mat r = m.row(3);         

// r has only 1 row (3 elems), last pixel there
cout<< r.at<Vec3i>(0,2)[0];  

关于c++ - 在 OpenCV Mat 中访问多个 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954016/

相关文章:

c++ - 在没有 for 循环的 C++98/03 中以相反的顺序将 C 数组附加到 vector

c++ - 使用 Qt 的 RESTful API 请求

c++ - 为什么这个令人困惑的#include"..\..\[etc. etc.]"语句可以工作?

MATLAB多维矩阵访问

R:摆脱 for 循环和加速代码

C++:获取2位数字的前一位

python - 调整存储在数组中的所有图像的大小

python - 获取图像opencv python中每个 channel 的对比度

javascript - 如何求2个矩阵的平均值?

java.lang.UnsatisfiedLinkError : 'long org.opencv.core.Mat.n_Mat()'