From a01eb79d5bd40decaaa4693534de77efdf330bb8 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期四, 24 三月 2022 21:45:46 +0800
Subject: [PATCH] bug fix   w > image_w /4

---
 extract_voltage_task.py |   23 +++++++++++------------
 1 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/extract_voltage_task.py b/extract_voltage_task.py
index b70d6df..406e112 100644
--- a/extract_voltage_task.py
+++ b/extract_voltage_task.py
@@ -19,7 +19,7 @@
     digits.append([cv2.imread(path + "/0-0.jpg", cv2.IMREAD_GRAYSCALE), 0])
     digits.append([cv2.imread(path + "/0-1.jpg", cv2.IMREAD_GRAYSCALE), 0])
     digits.append([cv2.imread(path + "/0-2.jpg", cv2.IMREAD_GRAYSCALE), 0])
-    digits.append([cv2.imread(path + "/0-3.jpg", cv2.IMREAD_GRAYSCALE), 0])  
+    digits.append([cv2.imread(path + "/0-3.jpg", cv2.IMREAD_GRAYSCALE), 0])
     digits.append([cv2.imread(path + "/1-0.jpg", cv2.IMREAD_GRAYSCALE), 1])
     digits.append([cv2.imread(path + "/1-1.jpg", cv2.IMREAD_GRAYSCALE), 1])
     digits.append([cv2.imread(path + "/2-0.jpg", cv2.IMREAD_GRAYSCALE), 2])
@@ -64,8 +64,6 @@
         return "@"
 
 
-
-
 def extrct_digits_from_frame(frame, col_start, col_end, rows_start, rows_end):
     image = frame[col_start:col_end, rows_start:rows_end]
     gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
@@ -73,7 +71,8 @@
                            cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
     kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (6, 6))
     counter = cv2.morphologyEx(thresh.copy(), cv2.MORPH_OPEN, kernel)
-    contours, hierarchy = cv2.findContours(counter, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
+    contours, hierarchy = cv2.findContours(
+        counter, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
     return_numbers = []
     contours_count = 0
     image_h = image.shape[0]
@@ -81,31 +80,31 @@
     digit = -1
     for c in contours:
         x, y, w, h = cv2.boundingRect(c)
-        if hierarchy[0][contours_count][3] ==0 and h > image_h * 0.3:
-            if w>w/4:
+        if hierarchy[0][contours_count][3] == 0 and h > image_h * 0.3:
+            if w > image_w/4:
                 half_width = int(w/2)
                 one_number = get_most_simmilar_digit(cv2.threshold(cv2.resize(
-                gray[y:y+h, x:x+half_width], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
+                    gray[y:y+h, x:x+half_width], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
                 if one_number != '@':
                     return_numbers.append([x, one_number])
                 else:
                     return digit, False
                 one_number = get_most_simmilar_digit(cv2.threshold(cv2.resize(
-                gray[y:y+h, x+half_width:x+w], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
+                    gray[y:y+h, x+half_width:x+w], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
                 if one_number != '@':
                     return_numbers.append([x+half_width, one_number])
                 else:
                     return digit, False
             else:
                 one_number = get_most_simmilar_digit(cv2.threshold(cv2.resize(
-                gray[y:y+h, x:x+w], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
+                    gray[y:y+h, x:x+w], (20, 30)), 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1])
                 if one_number != '@':
                     return_numbers.append([x, one_number])
                 else:
                     return digit, False
-        contours_count +=1
-    if len(return_numbers)==0:
-            return digit,False
+        contours_count += 1
+    if len(return_numbers) == 0:
+        return digit, False
     return_numbers = np.array(sorted(return_numbers))
     return_numbers = return_numbers[:, -1]
     if len(return_numbers) < 3:

--
Gitblit v1.9.1