- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 opencv 从使用 mpeg 压缩的 Vivotek 相机的视频输出中读取帧。我正在尝试使用该功能从特定位置开始播放视频。如下所示,其中开始是我要跳过的帧数。
inputVideo.set(CV_CAP_PROP_POS_FRAMES, start);
但是我遇到了一个问题,因为在开始帧之前捕获了不正确的帧。
我使用的是 opencv 版本 2.4.2
有人可以帮忙解决这个问题吗?
最佳答案
有点太晚了,但搜索相同的主题(不是特定于 Vivotek Camera,而是更多关于 openCV 的 mpeg 问题):
看到类似的问题:
Getting individual frames using CV_CAP_PROP_POS_FRAMES in cvSetCaptureProperty
Problem with CV_CAP_PROP_POS_FRAMES setting next frame number
desired position key frame (this is where the cursor will stop)
| | | |
| > | |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用 openCV 2.4.8/VS2013 和 trackbar 的示例代码:
用 MPG 格式 [MPEG1/MPEG2] 测试:设置帧位置工作正常
double currentPos = capture.get(CV_CAP_PROP_POS_FRAMES);
std::cout << "CV_CAP_PROP_POS_FRAMES = " << currentPos << std::endl;
// position_slider 0 - 100
double noFrame = position_slider*nbFrames / 100;
// solution 1
bool success = capture.set(CV_CAP_PROP_POS_FRAMES, noFrame);
// solution 2
double frameRate = capture.get(CV_CAP_PROP_FPS);
double frameTime = 1000.0 * noFrame / frameRate;
bool success = capture.set(CV_CAP_PROP_POS_MSEC, frameTime);
if (!success) {
std::cout << "Cannot set frame position from video file at " << noFrame << std::endl;
return;
}
currentPos = capture.get(CV_CAP_PROP_POS_FRAMES);
if (currentPos != noFrame) {
std::cout << "Requesting frame " << noFrame << " but current position == " << currentPos << std::endl;
}
success = capture.read(frame_aux);
if (!success) {
std::cout << "Cannot get frame from video file " << std::endl;
return;
}
imshow("test", frame_aux);
关于Opencv VideoCapture 设置 CV_CAP_PROP_POS_FRAMES 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404245/
我正在使用 opencv 从使用 mpeg 压缩的 Vivotek 相机的视频输出中读取帧。我正在尝试使用该功能从特定位置开始播放视频。如下所示,其中开始是我要跳过的帧数。 inputVideo.se
我目前使用的是opencv 3.1.0,执行以下代码时遇到如下错误: post_frame = cap.get(cv2.CV_CAP_PROP_POS_FRAMES) 我收到以下错误消息: 文件“vi
我试图通过设置 CV_CAP_PROP_POS_FRAMES 属性跳转到特定帧,然后像这样读取帧: cvSetCaptureProperty( input_video, CV_CAP_PROP_POS
我是一名优秀的程序员,十分优秀!