Opencv at函数用法
时间: 2024-04-20 08:22:36 浏览: 77
Opencv中的`at`函数用于访问矩阵或图像的像素值。它的语法如下:
```cpp
Mat.at<数据类型>(行索引, 列索引)
```
其中,`Mat`是一个矩阵或图像对象,`数据类型`是像素值的数据类型,可以是`uchar`、`float`、`double`等,`行索引`和`列索引`是要访问的像素的位置。
例如,下面的代码演示了如何使用`at`函数访问图像的像素值:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image = imread("image.jpg");
if (image.empty())
{
std::cout << "Could not open or find the image" << std::endl;
return -1;
}
// 访问图像的像素值
Vec3b pixel = image.at<Vec3b>(100, 200);
uchar blue = pixel[0];
uchar green = pixel[1];
uchar red = pixel[2];
std::cout << "Pixel value at (100, 200): B=" << (int)blue << ", G=" << (int)green << ", R=" << (int)red << std::endl;
return 0;
}
```
在上面的例子中,我们使用了`at<Vec3b>`来访问彩色图像的像素值,`Vec3b`代表一个包含3个uchar值的向量,分别表示蓝色、绿色和红色通道的值。最后,我们输出了像素值的信息。
需要注意的是,`at`函数在访问像素时会进行边界检查,如果索引超出了矩阵或图像的范围,会抛出异常。
阅读全文