|  | @@ -0,0 +1,27 @@
 | 
	
		
			
				|  |  | +import cv2
 | 
	
		
			
				|  |  | +from scipy.spatial import distance
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +general_count = 0
 | 
	
		
			
				|  |  | +for i in range(1, 13):
 | 
	
		
			
				|  |  | +    img = cv2.imread(f"./res/img ({i}).jpg")
 | 
	
		
			
				|  |  | +    image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 | 
	
		
			
				|  |  | +    _, thresh = cv2.threshold(image, 120, 255, 0)
 | 
	
		
			
				|  |  | +    contours, _ = cv2.findContours(
 | 
	
		
			
				|  |  | +        thresh.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    p_count = 0
 | 
	
		
			
				|  |  | +    for cnt in contours:
 | 
	
		
			
				|  |  | +        x, y, w, h = cv2.boundingRect(cnt)
 | 
	
		
			
				|  |  | +        points = cv2.boxPoints(cv2.minAreaRect(cnt))
 | 
	
		
			
				|  |  | +        w_euclid = distance.euclidean(points[0], points[1])
 | 
	
		
			
				|  |  | +        h_euclid = distance.euclidean(points[0], points[3])
 | 
	
		
			
				|  |  | +        if (h_euclid > 3 * w_euclid and h_euclid > 900) or (
 | 
	
		
			
				|  |  | +            w_euclid > 3 * h_euclid and w_euclid > 900
 | 
	
		
			
				|  |  | +        ):
 | 
	
		
			
				|  |  | +            p_count += 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    general_count += p_count
 | 
	
		
			
				|  |  | +    print(f"Img {i}, pencils count: {p_count}")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +print(f"Pencils total: {general_count}")
 |