python - .exe 文件无法从通过 rtsp 连接的摄像机读取 VideoStream?
问题描述
我有一个小项目应该从rtsp相机中读取 VideosStream 来完成一些其他任务。我可以毫无问题地运行它的原始hc_yolo_all.py文件。但是,使用 生成可执行文件后pyinstaller --onefile hc_yolo_all.py
,它无法派生 VideoStream 并给出错误
Traceback (most recent call last):
File "hc_yolo_all.py", line 60, in <module>
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
[7340] Failed to execute script hc_yolo_all.
可以看出,hc_yolo_all.pyframe = cv2.resize(frame, (416,416))
的第 60 行 正在接收一个空帧,因此输出错误。
你认为问题出在哪里?
老实说,我不知道它是否与opencv或rtsp或pyinstaller有关,所以我标记了这三个。
解决方案
好吧,我可以找到解决我自己问题的方法。看起来我们需要opencv_ffmpegxx.dll
与.exe
文件一起使用。这里,xx
应该是.py
制作时的opencv版本.exe
。我的opencv
版本是 3.4.3(上面甚至显示了错误),因此,我opencv_ffmpeg343_64.dll
把.exe
.
如何找到对应的dll:如果使用Anaconda,请查找C:\Users\username\Anaconda3\envs\envname\Lib\site-packages\cv2/。
归功于此
推荐阅读
- unity3d - 如何检查该对象没有被另一个对象隐藏?
- arduino - 如何使用 Adafruit_Fingerprint.h 验证指纹是否存在并注册?
- python - 有没有办法告诉 pylint 不要对函数的 redefined-outer-name 发出警告?
- alert - 测试规则 AlertManager 失败:yaml:解组错误:第 1 行:在 main.unitTestFile 类型中找不到字段组
- r - 从核密度计算质心
- postgresql - $1 和 有什么区别?在 db.query
- python - 编写一个名为 freq_of(letter, text) 的递归函数,用于查找字符串中指定字母的出现次数
- testing - 如何解决错误“”before all“钩子:准备套件:”
- python - 为什么我的 keras 模型需要 3D 列表来预测?
- c - 打印可变类型的结构元素