Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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):