Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

updating open cv to version 3

Hi all,

I have opencv version 2.3 installed on my raspberry pi running raspbian. I looked at http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html the tutorial talks about opencv 3.0.0. Is this still under development? If not, how do I upgrade to it? Please see below for installed version details pi@piprime ~ $ dpkg -l | grep libopencv
ii libopencv-calib3d2.3 2.3.1-11 armhf
computer vision Camera Calibration library
ii libopencv-core2.3 2.3.1-11 armhf
computer vision core library
ii libopencv-features2d2.3 2.3.1-11 armhf
computer vision Feature Detection and Descriptor Extraction library
ii libopencv-flann2.3 2.3.1-11 armhf
computer vision Clustering and Search in Multi-Dimensional spaces library
ii libopencv-highgui2.3 2.3.1-11 armhf
computer vision High-level GUI and Media I/O library
ii libopencv-imgproc2.3 2.3.1-11 armhf
computer vision Image Processing library
ii libopencv-legacy2.3 2.3.1-11 armhf
computer vision legacy library
ii libopencv-ml2.3 2.3.1-11 armhf
computer vision Machine Learning library
ii libopencv-objdetect2.3 2.3.1-11 armhf
computer vision Object Detection library
ii libopencv-video2.3 2.3.1-11 armhf
computer vision Video analysis library
pi@piprime ~ $

I want to upgrade because I want to run feature detection code. Please see the below python program as an example of what I want to run. Note: This program may have errors because I have been unable to test it.

import cv2 import time

test program for monocular obstacle detection

vc = cv2.VideoCapture(-1) if vc.isOpened(): # try to get the first frame print 'fetching first frame' rval, frame = vc.read() else: rval = False print 'unable to fetch frame' while rval: rval, frame = vc.read() time.sleep(100) frame=vc.read() print 'images read.' #we now have two images one second apart orb = cv2.ORB() kp1, des1 = orb.detectAndCompute(rval,None) kp2, des2 = orb.detectAndCompute(frame,None) print 'detection done' bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(des1,des2) print 'matches done.' matches = sorted(matches, key = lambda x:x.distance) print matches[0].distance print 'end.'