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[0],contours[1],contours[61]
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.
No comments:
Post a Comment