|
@@ -2,13 +2,34 @@ import modulecommpython
|
|
|
import numpy as np
|
|
|
import time
|
|
|
import sys
|
|
|
+import cv2
|
|
|
import rawpic_pb2
|
|
|
+from io import BytesIO
|
|
|
|
|
|
from PyModuleCommModule import PyModuleComm
|
|
|
|
|
|
time_image = 0
|
|
|
msg_image = rawpic_pb2.rawpic()
|
|
|
|
|
|
+
|
|
|
+def DetectImage(ximage: rawpic_pb2):
|
|
|
+ image_cv = np.zeros((ximage.height,ximage.width, 3), dtype=np.uint8)
|
|
|
+ print("width: ",ximage.width," type: ",ximage.type)
|
|
|
+ if(ximage.type == 1):
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ nparr = np.frombuffer(ximage.picdata, np.uint8)
|
|
|
+ print("len: ",len(nparr))
|
|
|
+ image_array = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
|
|
|
+ cv2.imshow('Image from JPG Byte Stream', image_array)
|
|
|
+ cv2.waitKey(1)
|
|
|
+ if image_array is not None:
|
|
|
+ print(" decode ok. len: ",len(image_array))
|
|
|
+ else:
|
|
|
+ print("decode fail.")
|
|
|
+ pass
|
|
|
+ pass
|
|
|
+
|
|
|
def image_callback(arr : np,nsize,time):
|
|
|
global msg_image
|
|
|
global time_image
|
|
@@ -16,21 +37,23 @@ def image_callback(arr : np,nsize,time):
|
|
|
databytes = sub_arr.tobytes()
|
|
|
msg = rawpic_pb2.rawpic()
|
|
|
msg.ParseFromString(databytes)
|
|
|
- msg_gpsimu = msg
|
|
|
- time_gpsimu = time
|
|
|
+ msg_image = msg
|
|
|
+ time_image = time
|
|
|
+ DetectImage(msg_image)
|
|
|
|
|
|
def main():
|
|
|
- # 初始化一个变量
|
|
|
- count = 0
|
|
|
|
|
|
mc = PyModuleComm("image00")
|
|
|
mc.RegisterRecv(image_callback)
|
|
|
|
|
|
- # 使用while循环,只要count小于10,就继续循环
|
|
|
- while count < 10:
|
|
|
- time.sleep(0.05)
|
|
|
-
|
|
|
- print("循环结束!")
|
|
|
+ try:
|
|
|
+ while True:
|
|
|
+ time.sleep(0.05) # 模拟程序正在工作
|
|
|
+ except KeyboardInterrupt:
|
|
|
+ print("\n捕获到 Ctrl+C,程序正在退出...")
|
|
|
+ mc.stop_thread()
|
|
|
+ finally:
|
|
|
+ print("程序退出完成。")
|
|
|
|
|
|
# 调用main函数
|
|
|
if __name__ == "__main__":
|