我刚刚开始处理视频中的图像而不是静止图像。正确的做法是什么?
- 我们通常会处理每一帧图像吗?
- 意思是,如果我想将 RGB 更改为 HSV 颜色空间等。人们通常在这里做什么?
在这里需要一些指导,因为我没有视频处理经验。
谢谢大家。
编辑:有谁知道为什么在opencv中处理的视频与原始视频相比存在显着滞后,即使它只是从RGB转换为HSV?
视频处理总是逐帧完成。例如,如果您想将 RGB 视频转换为 HSV,您将执行以下步骤:
更新:
将 RGB 视频转换为 HSV 的 C++ 示例代码:
#include<iostream>
#include<string>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
int main()
{
cv::VideoCapture capture;
cv::Mat RGB, HSV;
string videoPath = "C:/video.avi";
if(!capture.open(videoPath))
{
cout<<"Video Not Found"<<endl;
return;
}
while(true)
{
capture>>RGB; //Read a frame from the video
if(RGB.empty()) //Check if the frame has been read correctly or not
{
cout<<"Capture Finished"<<endl;
break;
}
cv::cvtColor(RGB,HSV,CV_BGR2HSV);
cv::imshow("HSV Image",HSV);
cv::waitKey(10);
}
capture.release();
return 0;
}
颜色转换功能可能需要为 HSV 预分配内存。在此处阅读文档。