Ver Fonte

Solved pencils

Vsevolod Levitan há 11 meses atrás
pai
commit
d444f72d8e

+ 27 - 0
pencils/main.py

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

BIN
pencils/res/img (1).jpg


BIN
pencils/res/img (10).jpg


BIN
pencils/res/img (11).jpg


BIN
pencils/res/img (12).jpg


BIN
pencils/res/img (2).jpg


BIN
pencils/res/img (3).jpg


BIN
pencils/res/img (4).jpg


BIN
pencils/res/img (5).jpg


BIN
pencils/res/img (6).jpg


BIN
pencils/res/img (7).jpg


BIN
pencils/res/img (8).jpg


BIN
pencils/res/img (9).jpg