OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library.
OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products.
Λόγο των δυνατοτήτων του, το OpenCV υποστηρίζεται σχεδόν σε όλες τις διαθέσιμες πλατφόρμες
C++
C
Python
Java
MATLAB
CUDA
OpenCL
import cv2 # OpenCV functions
import cv2.cv as cv # Older OpenCV functions
from sensor_msgs.msg import Image, CameraInfo # ROS related
from cv_bridge import CvBridge, CvBridgeError # Bridge from ROS to OpenCV
import numpy as np # Math library for image processing
self.cv_window_name = self.node_name2
cv.NamedWindow(self.cv_window_name, cv.CV_WINDOW_NORMAL)
cv.MoveWindow(self.cv_window_name, 25, 75)
self.image_sub = rospy.Subscriber("/camera/rgb/image_color",
Image, self.image_callback)
def image_callback(self, ros_image):
# Use cv_bridge() to convert the ROS image to OpenCV format
try:
frame = self.bridge.imgmsg_to_cv(ros_image, "bgr8")
except CvBridgeError, e:
print e
frame = np.array(frame, dtype=np.uint8)
def process_image(self, frame):
# Convert to greyscale
grey = cv2.cvtColor(frame, cv.CV_BGR2GRAY)
# Blur the image
grey = cv2.blur(grey, (7, 7))4
# Compute edges using the Canny edge filter
edges = cv2.Canny(grey, 15.0, 30.0)
return edges