1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
import cv2
im = cv2.imread ('m.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,200,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
''' cv2.CHAIN_APPROX_SIMPLE cette function renvoie que les points extraimes, et supprime tous les
autres points... '''
cnt = len(contours)
print 'nombre de contours est: ', cnt
'''
pixel list
'''
nb_repetitions = cnt
i = 0
while i<= nb_repetitions:
cnts = contours[i]
print 'cnts= ', cnts
cv2.drawContours(im, [cnts], 0, (0,255,0), 3) #dessiner contour
cv2.imshow ('affichage',im)
cv2.waitKey (0)
cv2.destroyAllWindows ()
fichier = open("data.txt", 'w')
fichier.write("coordonnees des contours extraits sont: \n\n")
fichier.write("coordonnées des contours: \n")
for x in range(len(im)): #parcourir les lignes
for y in range(len(im[x])): #parcours des colonnes pour chaques lignes
#if cnts[x][y] == : probleme je sais pas quelle condition dois je mettre
fichier.write("\n" +repr((x ,y)))
i = i+1 #boucle
fichier.close()
if i > nb_repetitions:
print "ERROR! i > nb_repetitions '_°"
raw_input("Appuyer sur ENTER pour terminer le programme. ") |
Partager