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}")