如何在opencv中访问Mat的第n个通道?

aha*_*555 5 c++ opencv channel

我知道如何cv::Mat使用Vec3b. 但是现在我有一个n频道cv::Mat并且n不是恒定的(使用cv::Vec<uchar, n>)。我cv::Mat现在如何访问频道?

Dim*_*htz 3

假设n = 10我们想要访问4thPixel 通道(i, j)。这是一个简单的例子:

typedef cv::Vec<uchar, 10> Vec10b;

// ....

// Create the mat
cv::Mat_<Vec10b> some_mat;

// Access 4th channel
uchar value = some_mat.at<Vec10b>(i,j)(4); 

// or 
uchar value = some_mat.at<Vec10b>(i,j)[4];
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助。请注意,您可以省略该typedef行,我只是认为这样更容易。