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 42 43 44 45 46 47 48 49 50 51 52 53 54
|
import matplotlib.pyplot as plt
import cv2
import os
os.chdir("C:\\Users\\klervie\\Documents")
"""
img = cv2.imread("image_bois_1.jpg")
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img2)
plt.show()
"""
img = cv2.imread('image_bois_2.jpg',0)
plt.imshow(img,cmap='gray')
plt.show()
#ret,thresh = cv2.threshold(img,127,255,0)
ret,thresh = cv2.threshold(img,144,255,4)
im2,contours,hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
plt.imshow(im2,cmap='gray')
plt.show()
liste_ma=[]
nbre_ellipse=0
for cnt in contours:
try:
M = cv2.moments(cnt)
print( M )
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
print("cx,cy",cx,cy)
area = cv2.contourArea(cnt)
print("area",area)
perimeter = cv2.arcLength(cnt,True)
print("perimeter",perimeter)
(x,y),(Ma,ma),angle = cv2.fitEllipse(cnt)
if area>100 and ma<300 :
ellipse = cv2.fitEllipse(cnt)
res = cv2.ellipse(img,ellipse,(255,255,255),2)
plt.imshow(res,cmap='gray')
liste_ma.append(ma)
nbre_ellipse+=1
print("liste_ma=",liste_ma,"nombre_ellipse=",nbre_ellipse)
except:
pass
plt.show() |
Partager