使用cvtColor切换到灰度图后,怎么把文件存入avi格式
时间: 2024-05-14 13:14:19 浏览: 7
要将灰度图像保存为AVI文件,您需要使用OpenCV中的VideoWriter类。以下是一个示例代码,可以将灰度图像保存为AVI文件:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 打开视频文件
VideoCapture cap("input.avi");
// 获取帧率和分辨率
double fps = cap.get(CAP_PROP_FPS);
int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
// 创建输出视频文件
VideoWriter writer("output.avi", VideoWriter::fourcc('M','J','P','G'), fps, Size(width, height), false);
Mat frame_gray;
while (cap.read(frame_gray))
{
// 转换为灰度图像
cvtColor(frame_gray, frame_gray, COLOR_BGR2GRAY);
// 写入输出视频文件
writer.write(frame_gray);
// 显示灰度图像
imshow("Gray", frame_gray);
// 等待按键
if (waitKey(1) == 27) break; // 按下ESC键退出
}
return 0;
}
```
在上面的示例代码中,我们首先使用VideoCapture类打开输入视频文件,并获取其帧率和分辨率。然后,我们使用VideoWriter类创建输出视频文件,并使用cvtColor函数将每一帧转换为灰度图像,并写入输出视频文件中。最后,我们显示灰度图像,并等待按键按下ESC键退出。