def callback(self, obst_list, image): self.publisher_bblinelist.publish( self.bbmarker) # since a single publish is likely to get lost # print "CALLBACK HERE" if (self.show_marker): marker_list = self.visualizer.visualize_marker(obst_list) self.publisher_marker.publish(marker_list) # 4. EVENTUALLY DISPLAY IMAGE if (self.show_image): obst_image = CompressedImage() obst_image.header.stamp = image.header.stamp obst_image.format = "jpeg" obst_image.data = self.visualizer.visualize_image( rectify(rgb_from_ros(image), self.intrinsics), obst_list) self.publisher_img.publish(obst_image.data)
def ProcessRawImage(self, img_raw): # rectify image img_undistorted = dt.rectify(dt.rgb_from_ros(img_raw), self.intrinsics) # compute grayscale image img_gray = cv2.cvtColor(img_undistorted, cv2.COLOR_RGB2GRAY) # detect edges img_canny = cv2.Canny(img_gray, self.canny_lower_threshold, self.canny_upper_threshold, apertureSize=self.canny_aperture_size) # apply mask img_mask = cv2.bitwise_and(img_canny,self.mask_visible) # pad image to avoid running into borders img_processed = cv2.copyMakeBorder(img_mask, self.line_search_length, self.line_search_length, self.line_search_length, self.line_search_length, cv2.BORDER_CONSTANT, value=0) return img_processed, img_gray
def callback(self, image): if not self.active: return if not self.thread_lock.acquire(False): return #start = time.time() obst_list = PoseArray() marker_list = MarkerArray() # pass RECTIFIED IMAGE TO DETECTOR MODULE #1. EXTRACT OBSTACLES and return the pose array obst_list = self.detector.process_image( rectify(rgb_from_ros(image), self.intrinsics)) obst_list.header.stamp = image.header.stamp #for synchronization #interessant um zu schauen ob stau oder nicht!!!! #print image.header.stamp.to_sec() self.publisher_arr.publish(obst_list) #EXPLANATION: (x,y) is world coordinates of obstacle, z is radius of obstacle #QUATERNION HAS NO MEANING!!!! #3. VISUALIZE POSE ARRAY IN TF if (self.show_marker): marker_list = self.visualizer.visualize_marker(obst_list) self.publisher_marker.publish(marker_list) #4. EVENTUALLY DISPLAY !!!!CROPPED!!!!!! IMAGE if (self.show_image): obst_image = CompressedImage() obst_image.header.stamp = image.header.stamp obst_image.format = "jpeg" obst_image.data = self.visualizer.visualize_image( rectify(rgb_from_ros(image), self.intrinsics), obst_list) #here i want to display cropped image rgb_image = rgb_from_ros(obst_image.data) obst_image.data = d8_compressed_image_from_cv_image( rgb_image[self.detector.crop:, :, ::-1]) #THIS part only to visualize the cropped version -> somehow a little inefficient but keeps #the visualizer.py modular!!! self.publisher_img.publish(obst_image.data) if (self.show_bird_perspective): bird_perspective_image = CompressedImage() bird_perspective_image.header.stamp = image.header.stamp bird_perspective_image.format = "jpeg" bird_perspective_image.data = self.visualizer.visualize_bird_perspective( rectify(rgb_from_ros(image), self.intrinsics), obst_list) #here i want to display cropped image rgb_image = rgb_from_ros(obst_image.data) obst_image.data = d8_compressed_image_from_cv_image(rgb_image) #THIS part only to visualize the cropped version -> somehow a little inefficient but keeps #the visualizer.py modular!!! self.publisher_img_bird_perspective.publish(obst_image.data) #end = time.time() #print "OBST DETECTION TOOK: s" #print(end - start) self.r.sleep() self.thread_lock.release()
#cv2.imwrite(dir+ '/' + str(i) + '.jpg',im1) nummer = 1 while (True): filename = im_path + '/' + str(nummer) + '.jpg' im1 = cv2.imread(filename) #reads BGR if (im1 is None): #stop it! break else: #START MODIFYING THE IMAGE!!! #-------------HERE GOES THE REAL CODE----------------------------------------------------------- #----------------------------------------------------------------------------------------------- obst_list = detector.process_image(rectify(im1[:, :, ::-1], intrinsics)) obst_image = CompressedImage() obst_image.format = "jpeg" obst_image.data = visualizer.visualize_image( rectify(im1[:, :, ::-1], intrinsics), obst_list) #here i want to display cropped image image = rgb_from_ros(obst_image.data) image = image[crop:, :, :] #THIS part only to visualize the cropped version -> somehow a little inefficient but keeps #the visualizer.py modular!!! #plt.imshow(image[detector.crop:,:,:]);plt.show() #the cropped image #plt.imshow(image);plt.show() #normal sized image #SAVE THE IMAGE conv = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) cv2.imwrite(dir_path + '/' + str(nummer) + '.jpg', conv) nummer += 1
def process_image(self, image): return d8_compressed_image_from_cv_image( rectify(image[..., ::-1], self.intrinsics)).data