我有一个小项目应该从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.py的第60行的frame = cv2.resize(frame, (416,416))
正在接收空帧,因此输出错误。
您认为问题在哪里?
说实话,我不知道它是否与opencv或rtsp或pyinstaller有关,所以我已经标记了这三个。
好吧,我可以找到解决自己问题的方法。看起来我们需要在opencv_ffmpegxx.dll
文件旁边加上.exe
。在这里,当xx
被制作为.py
时,.exe
应该是opencv的版本。我的opencv
版本是3.4.3(甚至错误显示在上面),因此,我把opencv_ffmpeg343_64.dll
放在我的.exe
旁边。
如何查找相应的DLL:在使用Anaconda的情况下,查找C:\ Users \ username \ Anaconda3 \ envs \ envname \ Lib \ site-packages \ cv2 /。
积分兑换this