使用多线程技术与gps一起运行opencv python,其中opencv将在gps速度达到3英里/小时时运行,并在低于3英里/小时时停止?(谢谢)

2024-10-06 09:01:38 发布

您现在位置:Python中文网/ 问答频道 /正文

import cv2
import serial
from multiprocessing import Process
from imutils.video import VideoStream


def opencv():
    vs = VideoStream().start()

    while(True):
        frame = vs.read()

        cv2.imshow("frame", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()

    

if __name__ == '__main__':
    
    gps = serial.Serial('COM7', 9600) # GPS

    while True:

        line = gps.readline()
        strLine = line.decode("utf-8") #Convert Byte to Str
        data = strLine.split(",")
        
        if data[0] == "$GPRMC":
            if data[2] == "A":
                knot = float(data[7])
                sat = 1.0 * 1.852
                total = knot / sat
                kmh = "{:.2f}".format(total)
                print(kmh)

                if kmh > str(0.05): #for example 3mph
                    print("ready")
                    p1= Process(target = opencv)
                    p1.start()
                    p1.join()

Tags: fromimportdataifserialcv2processframe