@@ -53,27 +53,27 @@ def displayFrame(frame):
5353 )
5454 cv2 .rectangle (frame , (bbox [0 ], bbox [1 ]), (bbox [2 ], bbox [3 ]), color , 2 )
5555 return frame
56-
56+
5757 filtered_label = - 1
5858 while pipeline .isRunning ():
5959 inRgb : dai .ImgFrame = qRgb .get ()
6060 inDet : dai .ImgDetections = qDet .get ()
61-
61+
6262 key = cv2 .waitKey (1 ) & 0xFF
6363 if key == ord ('q' ):
6464 pipeline .stop ()
6565 break
66-
66+
6767 if inRgb is not None :
6868 frame = inRgb .getCvFrame ()
69-
69+
7070 side_panel = np .ones ((frame .shape [0 ], 400 , 3 ), dtype = np .uint8 ) * 255
7171 if inDet is not None :
7272 detections = inDet .detections
7373 counter += 1
74-
74+
7575 labels = sorted (list (set (detection .label for detection in detections )))
76-
76+
7777 label_maps = [labelMap [l ] for l in labels ]
7878 cv2 .putText (side_panel , "Press index to filter by class:" , (10 , 20 ), cv2 .FONT_HERSHEY_TRIPLEX , 0.7 , (0 , 0 , 0 ), 1 )
7979 for i , label in enumerate (label_maps ):
@@ -95,7 +95,7 @@ def displayFrame(frame):
9595 (0 , 0 , 0 ),
9696 1
9797 )
98-
98+
9999 if key == ord ('0' ) :
100100 print ("Showing all labels" )
101101 filtered_label = - 1
@@ -104,24 +104,24 @@ def displayFrame(frame):
104104 if len (labels ) > int_key :
105105 print (f"Showing only: { labelMap [labels [int_key ]]} " )
106106 filtered_label = labels [int_key ]
107-
107+
108108 width = inDet .getSegmentationMaskWidth ()
109109 height = inDet .getSegmentationMaskHeight ()
110-
110+
111111 segmentation_mask = cv2 .Mat (np .zeros ((height , width ), dtype = np .uint8 ))
112112 if filtered_label == - 1 :
113113 segmentation_mask = inDet .getCvSegmentationMask ()
114114 else :
115115 segmentation_mask = inDet .getCvSegmentationMaskByClass (filtered_label )
116116 detections = [det for det in detections if det .label == filtered_label ]
117-
117+
118118 if segmentation_mask is not None :
119119 scaled_mask = segmentation_mask .copy ()
120120 scaled_mask [segmentation_mask != 255 ] = segmentation_mask [segmentation_mask != 255 ] * 25 # scale for better visualization
121121 colored_mask = cv2 .applyColorMap (scaled_mask , cv2 .COLORMAP_JET )
122122 colored_mask [segmentation_mask == 255 ] = frame [segmentation_mask == 255 ]
123123 frame = cv2 .addWeighted (frame , 0.7 , colored_mask , 0.3 , 0 )
124-
124+
125125 cv2 .putText (
126126 frame ,
127127 "NN fps: {:.2f}" .format (counter / (time .monotonic () - startTime )),
@@ -130,7 +130,7 @@ def displayFrame(frame):
130130 0.4 ,
131131 color2 ,
132132 )
133-
133+
134134 if frame is not None :
135135 frame = displayFrame (frame )
136136 concatenated_frame = cv2 .hconcat ([frame , side_panel ])
0 commit comments