My feeling about opencv is that it is a world itself, may be not mixing very well with other library.
In an attempt to analyse the chromosomes shape, I need to access to the coordinates of points belonging to the contour or to the skeleton of chromosomes. Opencv is a rich vision library, usable from python. Here, I wrote a minimal script to access the pixels of the chromosome contour:
|part15.png:image used to test opencv|
import cv definition of some colors _red = (0, 0, 255, 0); _green = (0, 255, 0, 0); _white = cv.RealScalar (255) _black = cv.RealScalar (0) # create window and display the original picture in it path="/home/claire/Applications/ProjetPython/test opencv/part15.png" image = cv.LoadImage(path,cv.CV_LOAD_IMAGE_GRAYSCALE) binary=image>0 cv.NamedWindow ("image", 1) cv.ShowImage ("image", image) # create the storage area storage = cv.CreateMemStorage (0) # find the contours contours = cv.FindContours(image, storage, cv.CV_RETR_TREE, cv.CV_CHAIN_APPROX_SIMPLE, (0,0)) cv.DrawContours(image,contours,_red,_black,max_level=2) print len(contours) print contours,contours,contours cv.WaitKey (0)
- The first thing I noticed is that without cv.WaitKey(0), the image is not visible, it is displayed and erased immediately.
- The object contours is a list of pixels coordinates, I didn't check yet if it is an ordered list of pixels.