首页 > 解决方案 > 树莓派 3 opencv python 和 pyinstaller

问题描述

我已使用此 OpenCV 代码通过 TCP 捕获 Raspberry picamera 流,并且此代码工作正常但是当我使用 pyinstaller 使用此链接制作可执行文件时

可执行文件不工作窗口消失这里是我的代码:

#!/usr/bin/python

import cv2
import threading
import numpy as np
import socket
import sys
import pickle
import struct

cam1_ip = "tcp://192.168.7.14:9002"
cam2_ip = "tcp://192.168.7.10:9002"
cam3_ip = "tcp://192.168.7.12:9002"

class pvcameraThread(threading.Thread):
    def __init__(self, previewName, camSource):
        threading.Thread.__init__(self)
        self.previewName = previewName
        self.camSource = camSource
    def run(self):
        print ("Starting " + self.previewName)
        camPreview(self.previewName, self.camSource)

def camPreview(previewName, camSource):
    cv2.namedWindow(previewName)
    cam = cv2.VideoCapture(camSource)
    if cam.isOpened():  
        rval, frame = cam.read()
    else:
        rval = False

    while rval:
       # cv2.resizeWindow(previewName, 607,507)
        cv2.imshow(previewName, frame)
        rval, frame = cam.read()
        key = cv2.waitKey(1)
        if key == 113:  
            break
    cv2.destroyWindow(previewName)

if __name__ == '__main__':

    # Create two threads as follows
    cam1_previewthread = pvcameraThread("CAM1_Preview", cam1_ip)
    cam2_previewthread = pvcameraThread("CAM2_Preview", cam2_ip)
    cam3_previewthread = pvcameraThread("CAM3_Preview", cam3_ip)
    cam1_previewthread.start()
    cam2_previewthread.start()
    cam3_previewthread.start()
	
	
i

标签: pythonopencvtcpvideo-streamingexecutable

解决方案


我认为这个答案会对你有所帮助。这个答案的总结是 pyinstaller 并不完美,有时您需要手动添加库。 https://stackoverflow.com/a/38987705/10373782


推荐阅读