写出opencv连续读取raw文件的图片集的C++代码
时间: 2024-05-01 16:17:55 浏览: 86
VC++ 读取raw文件的代码
4星 · 用户满意度95%
以下是基于OpenCV的连续读取raw文件的图片集的C代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 4)
{
cout << "Incorrect number of arguments. Format: ./imageReader <filepath> <imageWidth> <imageHeight>" << endl;
return -1;
}
//获取图像大小
int img_width = atoi(argv[2]);
int img_height = atoi(argv[3]);
//打开文件
FILE* file = fopen(argv[1], "rb");
if (file == NULL)
{
cout << "File not found." << endl;
return -1;
}
//创建图像矩阵
Mat frame(img_height, img_width, CV_8UC1);
//循环读取并显示图像
while (1)
{
//读取图像
fread(frame.data, 1, img_height * img_width * sizeof(uchar), file);
if (feof(file))
break;
//显示图像
imshow("Frame", frame);
waitKey(30);
}
//关闭文件
fclose(file);
return 0;
}
```
这个程序接受三个参数:文件路径、图像宽度和图像高度。
它使用fopen打开文件,然后循环读取文件中的图像(每次读取img_width x img_height的数据块),并使用OpenCV的Mat类将其转换为图像。读取的图像在循环内被显示出来,使用waitKey等待30毫秒以允许用户交互。当读取完成后,程序关闭文件并退出。
注意:这段代码并没有进行任何处理,例如它不会编辑任何图像,只是将图像显示在屏幕上。您可以根据需要修改代码。
阅读全文