c语言使用opencv读取文件夹中所有图片的rgb信息并将rgb信心保存本地
时间: 2024-01-01 15:03:18 浏览: 123
好的,这个问题可以通过以下C++代码实现:
```c++
#include <opencv2/opencv.hpp> //引入OpenCV头文件
#include <iostream>
#include <vector>
#include <string>
using namespace std;
using namespace cv;
int main()
{
string path = "your/directory/path/"; //图片所在的文件夹路径
vector<String> files; //存储文件名的vector
//用OpenCV中的glob函数获取文件夹中所有后缀名为jpg/png/jpeg的文件名,并存入vector
glob(path, files, false);
for (int i = 0; i < files.size(); ++i)
{
//利用OpenCV中的imread函数读取图片并保存到Mat类型的矩阵中
Mat img = imread(files[i]);
//获取图片的行列数
int rows = img.rows;
int cols = img.cols;
//遍历矩阵的每个像素
for (int y = 0; y < rows; ++y)
{
for (int x = 0; x < cols; ++x)
{
//获取当前像素的RGB值
Vec3b bgr = img.at<Vec3b>(y, x);
uchar blue = bgr[0];
uchar green = bgr[1];
uchar red = bgr[2];
//将RGB值保存到本地文件中
ofstream fout("rgb.txt", ios::app);
fout << static_cast<int>(red) << " " << static_cast<int>(green) << " " << static_cast<int>(blue) << endl;
fout.close();
}
}
}
return 0;
}
```
这段代码可以将文件夹中所有的后缀名为jpg/png/jpeg的图片的RGB值保存到本地rgb.txt文件中。注意需要将路径修改为你自己电脑上图片所在文件夹的路径。
阅读全文