Skip to content

Commit

Permalink
Merge pull request #9 from szkszk95/master
Browse files Browse the repository at this point in the history
remove print
  • Loading branch information
hjptriplebee authored Dec 19, 2018
2 parents 2ac5ad4 + aa03644 commit 8a747e6
Showing 1 changed file with 20 additions and 24 deletions.
44 changes: 20 additions & 24 deletions youwen.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from Common import *

ifshow = True
ifshow = False

red_range = [ np.array([156, 120, 80]), np.array([179, 240, 220])]
white_range = [ np.array([0, 0, 200]), np.array([180, 30, 255])]
Expand All @@ -20,17 +20,15 @@ def color_detection(image, color):
cv2.imshow("inRange", mask)
cv2.waitKey(0)

size = mask.shape[::-1]
mask = cv2.resize(mask, (0, 0), fx=0.5, fy=0.5)
kernel_1 = np.ones((3, 3), np.uint8)
kernel_2 = np.ones((5, 5), np.uint8)
kernel = np.ones((3, 3), np.uint8)

mask = cv2.dilate(mask, kernel_1, 1)
mask = cv2.dilate(mask, kernel,)
if ifshow:
cv2.imshow("dilate", mask)
cv2.waitKey(0)

mask = cv2.erode(mask, kernel_1)
mask = cv2.erode(mask, kernel)
if ifshow:
cv2.imshow("erode", mask)
cv2.waitKey(0)
Expand Down Expand Up @@ -64,9 +62,6 @@ def contours_check(image, center):
for i in range(len(contours)):
rec = cv2.minAreaRect(contours[i])
area = cv2.contourArea(contours[i])
print(area/(rec[1][0]*rec[1][1]+1), area)
# print(rec)
# print(cv2.contourArea(contours[i])/(rec[1][0]*rec[1][1]))
if area/(rec[1][0]*rec[1][1]+1) < 0.7 or area > 1400 or area < 500:
continue
else:
Expand Down Expand Up @@ -96,12 +91,13 @@ def youwen(image, info):
start = np.array([info["startPoint"]["x"], info["startPoint"]["y"]])
end = np.array([info["endPoint"]["x"], info["endPoint"]["y"]])
center = np.array([info["centerPoint"]["x"], info["centerPoint"]["y"]])
cv2.imshow("input", image)
cv2.waitKey(0)
if ifshow:
cv2.imshow("input", image)
cv2.waitKey(0)

meter = meterFinderByTemplate(image, info["template"])
h, w, _ = meter.shape
print("origin shape", h, w)
# print("origin shape", h, w)

fixHeight = 300
fixWidth = int(meter.shape[1] / meter.shape[0] * fixHeight)
Expand All @@ -118,21 +114,21 @@ def youwen(image, info):
mask_meter_red = color_detection(meter, red_range)
point_red = contours_check(mask_meter_red, center)
degree_red = AngleFactory.calPointerValueByOuterPoint(start, end, center, point_red, info["startValue"], info["totalValue"])
print("red degree {:.2f}".format(degree_red))

cv2.destroyAllWindows()

mask_meter_white = color_detection(meter, white_range)
point_white = contours_check(mask_meter_white, center)
degree_white = AngleFactory.calPointerValueByOuterPoint(start, end, center, point_white, info["startValue"], info["totalValue"])
print("white degree {:.2f}".format(degree_white))

cv2.circle(meter, (start[0], start[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (end[0], end[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (center[0], center[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (point_white[0], point_white[1]), 5, (255, 255, 255), -1)
cv2.circle(meter, (point_red[0], point_red[1]), 5, (0, 0, 255), -1)
cv2.imshow("meter", meter)
cv2.waitKey(0)


if ifshow:
print("white degree {:.2f}".format(degree_white))
print("red degree {:.2f}".format(degree_red))
cv2.circle(meter, (start[0], start[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (end[0], end[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (center[0], center[1]), 5, (0, 0, 255), -1)
cv2.circle(meter, (point_white[0], point_white[1]), 5, (255, 255, 255), -1)
cv2.circle(meter, (point_red[0], point_red[1]), 5, (0, 0, 255), -1)
cv2.imshow("meter", meter)
cv2.waitKey(0)

return int(degree_red*100)/100, int(degree_white*100)/100

0 comments on commit 8a747e6

Please # to comment.