Browse Source

drawing frames debuged

video-streaming
s_kiani 1 week ago
parent
commit
bc4ac21f36
  1. 26
      core.py

26
core.py

@ -20,7 +20,7 @@ import ctypes
from ctypes import c_int64 from ctypes import c_int64
from server import run_server, RTSPServer, get_local_ip from server import run_server, RTSPServer, get_local_ip
showTrack = False
showTrack = True
class Core(QThread): class Core(QThread):
newFrame = pyqtSignal(object, int, bool, ctypes.c_int64) newFrame = pyqtSignal(object, int, bool, ctypes.c_int64)
@ -31,13 +31,13 @@ class Core(QThread):
self.__detector = detector self.__detector = detector
self.__tracker = tracker self.__tracker = tracker
self.__tracker_rio = None
self.__tracker__secc = False
self.__tracker_roi = None
self.__tracker__succ = False
self.__rtspserver_0 = RTSPServer(get_local_ip(), 41231,"/stream0")
self.__rtspserver_0 = RTSPServer(get_local_ip(), 41231,"/stream")
threading.Thread(target=run_server,args=[self.__rtspserver_0], daemon=True).start() threading.Thread(target=run_server,args=[self.__rtspserver_0], daemon=True).start()
self.__rtspserver_1 = RTSPServer(get_local_ip(), 41232,"/stream1")
self.__rtspserver_1 = RTSPServer(get_local_ip(), 41232,"/stream")
threading.Thread(target=run_server,args=[self.__rtspserver_1], daemon=True).start() threading.Thread(target=run_server,args=[self.__rtspserver_1], daemon=True).start()
self.__video_sources = video_sources self.__video_sources = video_sources
@ -79,6 +79,7 @@ class Core(QThread):
self.set_source(0) self.set_source(0)
def __stream(self): def __stream(self):
# return
"""Continuous streaming of the video source.""" """Continuous streaming of the video source."""
while self.__is_streaming: while self.__is_streaming:
try: try:
@ -89,18 +90,20 @@ class Core(QThread):
if frame_1 is not None: if frame_1 is not None:
if self.__is_tracking and self.__tracker is not None and self.__processing_id == 1: if self.__is_tracking and self.__tracker is not None and self.__processing_id == 1:
if self.__tracker_rio is not None:
if self.__tracker_roi is not None:
x, y, w, h = map(int, self.__tracker_roi) x, y, w, h = map(int, self.__tracker_roi)
box_color = (0, 255, 0) if self.__tracker__secc else (255, 0, 0)
box_color = (0, 255, 255) if self.__tracker__succ else (255, 0, 0)
cv2.rectangle(frame_1, (x, y), (x + w, y + h), box_color, 2) cv2.rectangle(frame_1, (x, y), (x + w, y + h), box_color, 2)
print(frame_1.shape)
self.__rtspserver_1.update_frame(frame_1) self.__rtspserver_1.update_frame(frame_1)
if frame_0 is not None: if frame_0 is not None:
if self.__is_tracking and self.__tracker is not None and self.__processing_id == 0: if self.__is_tracking and self.__tracker is not None and self.__processing_id == 0:
if self.__tracker_rio is not None:
if self.__tracker_roi is not None:
x, y, w, h = map(int, self.__tracker_roi) x, y, w, h = map(int, self.__tracker_roi)
box_color = (0, 255, 0) if self.__tracker__secc else (255, 0, 0)
box_color = (0, 255, 255) if self.__tracker__succ else (255, 0, 0)
cv2.rectangle(frame_0, (x, y), (x + w, y + h), box_color, 2) cv2.rectangle(frame_0, (x, y), (x + w, y + h), box_color, 2)
print(frame_0.shape)
self.__rtspserver_0.update_frame(frame_0) self.__rtspserver_0.update_frame(frame_0)
sleep(0.03) sleep(0.03)
@ -159,10 +162,10 @@ class Core(QThread):
ctime = c_int64(int(time.time() * 1000)) # Convert to c_int64 ctime = c_int64(int(time.time() * 1000)) # Convert to c_int64
frame = source.get_frame() frame = source.get_frame()
print(f"intial frame size :{frame.shape}")
# print(f"intial frame size :{frame.shape}")
bbox, success = self.__tracker.update(frame) bbox, success = self.__tracker.update(frame)
self.__tracker_roi = bbox self.__tracker_roi = bbox
self.__tracker__secc = success
self.__tracker__succ = success
if bbox is not None: if bbox is not None:
center = bbox[:2] + bbox[2:] // 2 center = bbox[:2] + bbox[2:] // 2
@ -279,6 +282,7 @@ class Core(QThread):
self.__tracker.stop() self.__tracker.stop()
self.__is_tracking = False self.__is_tracking = False
self.__tracking_thread = None self.__tracking_thread = None
self.__tracker_roi = None
def __draw_bbox(self, img: np.ndarray, bbox, color): def __draw_bbox(self, img: np.ndarray, bbox, color):
thickness = self.__thickness thickness = self.__thickness

Loading…
Cancel
Save