作为一名专业的C++ 程序员,请用opencv读取一张图片,每个像素点的光通量,不要乱写
时间: 2024-01-16 11:04:51 浏览: 70
opencv读入一幅图像
好的,以下是使用 OpenCV 读取一张图片,并打印每个像素点的光通量的 C++ 代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 2)
{
cout << "Usage: ./read_img <img_path>" << endl;
return -1;
}
Mat img = imread(argv[1], IMREAD_GRAYSCALE); // 以灰度模式读取图片
if (img.empty())
{
cout << "Failed to open image" << endl;
return -1;
}
int rows = img.rows;
int cols = img.cols;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
int pixel_value = (int)img.at<uchar>(i, j); // 读取像素点的灰度值
cout << "Pixel (" << i << ", " << j << "): " << pixel_value << endl;
}
}
return 0;
}
```
你可以将你需要读取的图片路径作为命令行参数传入程序。这个程序会使用 OpenCV 的 `imread()` 函数读取图片,并将其转换为灰度模式。然后,它会遍历每个像素点,并使用 `at<uchar>()` 函数获取像素点的灰度值。最后,程序会打印出每个像素点的灰度值。
阅读全文