4

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

img.at<uchar>(i,j) 

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

<uchar> 

同样,什么意思

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

是的,Mat是矩阵类来操作矩阵数据。我理解上述行为的行为,但无法理解它们背后的理论?

这个语法是什么意思?

img.at<cv::Vec3b>
4

1 回答 1

9

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

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

img.at<uchar>(i,j) 

上面这行意味着,我们正在访问像素(i,j)并将其数据类型指定为unsigned char

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

img.at<cv::Vec3b>

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

于 2013-03-19T04:49:19.230 回答