import rospy from sensor_msgs.msg import Image import cv2 as cv from cv_bridge import CvBridge, CvBridgeError # from geometry_msgs.msg import PoseStamped from flipkart.msg import detection import numpy as np bridge = CvBridge() rospy.init_node('opencv_example', anonymous=True) mid_pub = rospy.Publisher('cvmsg', detection,queue_size=10) midpoint = detection() def show_image(frame): cv.namedWindow("RGB Image Window",cv.WINDOW_NORMAL) lower = np.array([20, 100, 100]) #hsv limits vary based on hoops yellow upper = np.array([30, 255, 255]) frame_HSV = cv.cvtColor(frame, cv.COLOR_BGR2HSV) mask = cv.inRange(frame_HSV, lower, upper) mask_Open = cv.morphologyEx(mask, cv.MORPH_OPEN, np.ones((10, 10))) mask_Close = cv.morphologyEx(mask_Open, cv.MORPH_CLOSE, np.ones((20, 20))) #to reduce noise and get smooth image mask_Perfect = mask_Close _,conts, h = cv.findContours(mask.copy(), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE) # detects contours for c in conts: #creates bounding boxes around the detected hoop areas = [cv.contourArea(c) for c in conts] # Find the index of the largest contour max_index = np.argmax(areas)
import rospy from sensor_msgs.msg import Image import cv2 as cv from cv_bridge import CvBridge, CvBridgeError from flipkart.msg import detection import numpy as np dbridge = CvBridge() rospy.init_node('opencvdepth', anonymous=True) bbox = detection() def cvcallback(cv_msg): global bbox bbox = cv_msg # print(bbox) def show_image(frame): frame= frame*10 # for representation cv.waitKey(1) cv.namedWindow("depth Image Window",cv.WINDOW_NORMAL) rospy.Subscriber('cvmsg',detection, cvcallback) x = bbox.x y = bbox.y h = bbox.breadth w = bbox.length value = frame[int(x)][int(y)] print(len(frame)) cv.rectangle(frame,(int(x-w/2),int(y-h/2)),(int(x+w/2),int(y+h/2)),(255, 255, 255), 2,1)
import copy import rospy import random import math from geometry_msgs.msg import PoseStamped from geometry_msgs.msg import TwistStamped from flipkart.msg import detection from armf import armtakeoff rospy.init_node('navigation', anonymous=True) xpixel = 640 ypixel = 480 fovx = 1.047 bbox = detection() oldbbox = detection() setpoint = PoseStamped() current_position = PoseStamped() vel = TwistStamped() i = 0 def cvcallback(cv_msg): global bbox bbox = cv_msg def callback_pos(pos):