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