C++opencv,获取灰度图origin在点point处的灰度值
时间: 2024-03-01 21:56:05 浏览: 33
可以使用OpenCV中的函数`cv::Mat::at<uchar>(int row, int col)`来获取灰度图像素点的灰度值,其中`row`和`col`分别为像素点的行和列坐标,`uchar`为像素点的数据类型。以下是获取灰度图`origin`在点`(x, y)`处的灰度值的示例代码:
```c++
// 读取灰度图
cv::Mat origin = cv::imread("gray_image.jpg", cv::IMREAD_GRAYSCALE);
// 获取像素点(x, y)处的灰度值
int gray_value = origin.at<uchar>(y, x);
```
需要注意的是,像素点的坐标是从左上角开始计数的。
相关问题
c++ opencv转灰度图
使用OpenCV库将彩色图像转换为灰度图像的C++代码如下:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取彩色图像
Mat image = imread("test.jpg");
// 转换为灰度图像
Mat gray;
cvtColor(image, gray, COLOR_BGR2GRAY);
// 显示灰度图像
imshow("Gray Image", gray);
waitKey(0);
return 0;
}
```
其中,`cvtColor()`函数用于将彩色图像转换为灰度图像,第一个参数为输入图像,第二个参数为输出图像,第三个参数为颜色空间转换代码,`COLOR_BGR2GRAY`表示将BGR格式的彩色图像转换为灰度图像。
c++opencv获取point点的像素值
你可以使用OpenCV库中的`cv::Mat`类和`cv::Point`类来获取某个像素点的值。具体代码如下:
```c++
cv::Mat img = cv::imread("path/to/image.jpg"); // 读取图像
cv::Point pt(100, 200); // 像素点的坐标
cv::Vec3b pixel = img.at<cv::Vec3b>(pt); // 获取像素点的值
```
这里`cv::Vec3b`表示一个三通道的像素值,如果图像是单通道的,可以使用`uchar`替代。如果你想获取像素点的灰度值,可以使用`cv::cvtColor()`函数将图像转换为灰度图像,然后再获取像素值。