我刚开始处理视频中的图像,而不是静止的图像。正确的方法是什么?
这里需要一些指导,因为我没有视频处理的经验。
谢谢大家。
编辑:有人知道为什么在opencv中处理的视频与原始视频相比有很大的延迟,即使它只是从RGB转换到HSV?
发布于 2012-10-18 08:50:23
视频处理总是一帧一帧地进行。例如,如果您想将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预先分配内存。阅读文档这里。
https://stackoverflow.com/questions/12949411
复制相似问题