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