我使用yuv
的相机以raspberry pi
格式录制了未压缩/未编码的视频。我想将每个帧读取为图像,还要计算视频的帧总数。
我找到了这个答案:How to read a frame from YUV file in OpenCV?但是它看起来很旧,似乎没有用。
我是否必须先将yuv
视频转换为其他格式才能读取每一帧。我应该怎么做?
哪个工具更适合OpenCV
或Matlab
或其他工具?
最佳答案
我认为OpenCV可以从视频文件中读取YUV帧,因为底层的媒体处理程序层(即FFmpeg)可以完成这项工作。
此外,OpenCV还支持YUV and BGR到cv::cvtColor()
或CV_YCrCb2RGB
到 CV_RGBYCrCb
之间的转换。
以下代码适用于您的视频吗?
cv::VideoCapture cap("PATH_TO_YUV");
if (!cap.isOpened())
{
std::cout << "Failed to open file: " << "PATH_TO_YUV" << std::endl;
return -1;
}
cv::Mat frame;
while(true)
{
cap >> frame;
if (frame.empty())
break;
cv::imshow("YUV frame", frame);
cv::waitKey(1);
}
关于matlab - 阅读未压缩的yuv视频文件的帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689927/