capture.set(cv2.CAP_PROP_FPS, fpsv * video_fps)怎么没用
时间: 2024-04-27 16:22:17 浏览: 210
可能有多种原因导致该语句没有生效,以下是一些可能的原因:
1. `capture`对象没有被正确初始化或者没有被正确读取视频文件。
2. `fpsv`或`video_fps`的值不正确,导致设置的帧率不合理。
3. 视频文件本身的帧率已经被固定,无法通过代码改变。
4. 其他部分代码对帧率进行了修改,覆盖了这段代码的设置。
您可以仔细检查以上几点,看是否有可能导致该语句没有生效。如果无法解决问题,您可以提供更多的代码和上下文信息,以便更好地理解和帮助您解决问题。
相关问题
capture.set(CV_CAP_PROP_FPS, 30);无法设置
这个问题可能是因为你使用的 OpenCV 版本不同,或者你的摄像头不支持该帧率。你可以尝试使用以下代码来设置帧率:
```
capture.set(cv::CAP_PROP_FPS, 30);
```
如果仍然无法设置帧率,你可以尝试使用以下代码获取可用的帧率:
```
double fps = capture.get(cv::CAP_PROP_FPS);
std::cout << "可用帧率:" << fps << std::endl;
```
然后选择一个可用帧率进行设置。
if video_save_path!="": fourcc = cv2.VideoWriter_fourcc(*'XVID') size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT))) out = cv2.VideoWriter(video_save_path, fourcc, video_fps, size)
这段代码是用来创建一个视频写入器,将捕获到的视频帧写入到一个新的视频文件中。其中,video_save_path 表示视频保存的路径,fourcc 是一个四字节码,用来指定编解码器,size 表示视频帧的大小,out 是创建的视频写入器对象。视频帧的大小可以通过读取视频捕获对象的属性 cv2.CAP_PROP_FRAME_WIDTH 和 cv2.CAP_PROP_FRAME_HEIGHT 获取。视频帧率 video_fps 则需要在调用这段代码前指定。
阅读全文