img.at <uchar>(i,j)是什么意思?</uchar>

时间:2013-03-19 04:26:53

标签: c++ opencv mat

这是一个基本问题。我不知道这个结构是什么。

img.at<uchar>(i,j) 

意味着什么?我试着找到 at 的定义,但无法理解。这个语法意味着什么?

<uchar> 

同样,

的含义
img.at<cv::Vec3b>(row,col)[channel] 

是的,Mat是用于处理矩阵数据的矩阵类。我了解上述那些行为的行为却无法理解它们背后的理论?

这种语法是什么意思?

img.at<cv::Vec3b>

1 个答案:

答案 0 :(得分:7)

at是类cv::Mat的重载C ++模板函数。

< >是调用C ++模板的语法。

img.at<uchar>(i,j) 

上述行表示我们正在访问像素(i,j)并将其数据类型指定为unsigned char

用简单的英语,从索引(i, j)获取1个像素,即行号 i ,列号 j

img.at<cv::Vec3b>

以上用于3通道图像。与第一个相同,但是获取所有三个通道的像素值。返回的值是Vec3b结构,包含3个值,每个通道一个。