c++ opencv cv::mat 访问元素
时间: 2023-08-08 11:12:51 浏览: 147
vector和Mat-opencv2.3之后版本的基本概述
在 C++ 中,使用 OpenCV 库时,可以使用 cv::Mat 类来表示图像和矩阵。要访问 cv::Mat 中的元素,可以使用 .at() 方法。例如,如果要访问第 i 行 j 列的元素,可以使用以下代码:
```
cv::Mat image;
// 假设图像是 480x640 的
int i = 100;
int j = 200;
cv::Vec3b pixel = image.at<cv::Vec3b>(i, j);
// 此时 pixel 就是第 i 行 j 列的像素值,是一个 Vec3b 类型的对象
```
其中,cv::Vec3b 表示一个 3 通道的像素值,每个通道都是一个 unsigned char 类型的值。如果图像是单通道的,可以使用 cv::Scalar 类型来表示像素值。例如:
```
cv::Mat gray_image;
// 假设图像是 480x640 的
int i = 100;
int j = 200;
uchar pixel = gray_image.at<uchar>(i, j);
// 此时 pixel 就是第 i 行 j 列的像素值,是一个 unsigned char 类型的值
```
需要注意的是,使用 .at() 方法访问元素时,要确保索引不越界。否则会导致程序崩溃。
阅读全文