cv::mat 的at方法
时间: 2023-07-28 12:09:46 浏览: 109
在 OpenCV 中,cv::Mat 是一种常用的矩阵数据类型,它可以表示图像、视频和其他类型的数值数据。cv::Mat 类有一个 at() 方法来访问矩阵中的像素值。
at() 方法的基本语法如下:
```cpp
Mat::type& Mat::at(int i, int j);
```
其中,i 和 j 分别表示像素的行和列索引,type 是图像像素的数据类型,例如 CV_8UC3 表示每个像素由 3 个无符号 8 位整数(即 24 位颜色)组成。
at() 方法的返回值是一个引用,可以用来读取或修改像素值。下面是一个使用 at() 方法访问图像像素值的示例:
```cpp
cv::Mat image = cv::imread("image.jpg"); // 读取图像
int row = 100, col = 200; // 假设要访问 (100, 200) 处的像素
cv::Vec3b pixel = image.at<cv::Vec3b>(row, col); // 读取像素值
pixel[0] = 255; // 修改像素值
image.at<cv::Vec3b>(row, col) = pixel; // 将修改后的像素值写回到图像
```
在这个示例中,我们首先读取了一张图像,然后通过 at() 方法访问了图像中的一个像素。由于图像是彩色图像,所以像素值是一个三通道的颜色值(使用 cv::Vec3b 类型表示)。我们可以通过修改像素值来改变图像的颜色,然后将修改后的像素值写回到图像中。
相关问题
cv::mat at
cv::Mat.at是OpenCV库中用于访问图像元素的函数。它允许您通过指定行和列来获取或设置特定像素的值。根据引用,可以使用cv::Mat.at<cv::Vec3b>(row, col)来获取或设置RGB图像中特定像素的值。类似地,对于灰度图像,可以使用cv::Mat.at<uchar>(row, col)来获取或设置特定像素的值。
cv::Mat trans; cv::warpPerspective(img2, trans, H, cv::Size(img1.cols + img2.cols, img2.rows)); cv::Mat left_top = (cv::Mat_<double>(3, 1) << 0, 0, 1); cv::Mat points = H * left_top; int start = (int)points.at<double>(0, 0); cv::Mat trans_copy = trans.clone(); cv::Mat result = trans; cv::Mat roi = result(cv::Rect(0, 0, img1.cols, img1.rows)); img1.copyTo(roi);解析
这段代码是使用OpenCV库进行图像处理的,主要实现了图像融合的功能。
首先,将img2图像通过warpPerspective函数进行透视变换,得到变换后的图像trans。其中,参数H是一个3x3的变换矩阵,表示img2图像相对于img1图像的透视变换关系;Size(img1.cols+img2.cols, img2.rows)指定了变换后的图像大小。
接着,通过矩阵运算计算出img2图像左上角在变换后图像中的像素坐标,存储在points变量中。由于points是一个3x1的矩阵,所以通过at函数获取points中的第一个元素,并将其转换为整数,得到了img2图像在变换后图像中的左侧起始像素列数start。
然后,通过clone函数将变换后的图像trans复制一份到trans_copy中,以便后续操作不影响原始图像。接着,将result变量初始化为变换后的图像trans,并通过ROI(Region of Interest)机制获取result中左上角大小与img1相同的区域roi。最后,通过copyTo函数将img1图像复制到roi区域中,完成了图像融合的过程。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)