前言
在使用darknet
打开摄像头进行目标检测时, 除了想实时监测外, 还想保存检测的视频, 就可以使用-out_filename
这个参数
比如下面的命令
1 | darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg weights/yolov3-tiny.weights -out_filename webcam.avi |
但是却直接遇到了崩溃, 明明不保存视频时不会奔溃的, 为什么一使用-out_filename
就崩溃了
进行调试
遇到这种问题, 只能通过调试源代码才能查出代码崩溃的原因
先设置好命令行参数, 注意使用绝对路径,
coco.data
里面的names
参数也要用绝对路径(相对路径也可以, 但容易出错, 出错程序会一闪而过, 通过单步调试可知为什么闪退了)进行摄像头保存调试, 即 使用参数
-out_filename
通过单步调试找到中断点在这里,
思考到我们调用的是摄像头, 应该是涉及不到get_stream_fps
这个函数, 应该默认为25即可。
修改代码为如图,
1 | if (filename) src_fps = get_stream_fps(cap, cpp_video_capture); |
再次编译, 测试摄像头录像保存
成功导出了录像视频