better drawing, faster text

cascade
Cole Deck 5 years ago
parent 8940872a79
commit 6d48185771

@ -101,7 +101,7 @@ cnts = imutils.grab_contours(cnts)
# sort the contours from left-to-right and initialize the # sort the contours from left-to-right and initialize the
# 'pixels per metric' calibration variable # 'pixels per metric' calibration variable
(cnts, _) = contours.sort_contours(cnts) #(cnts, _) = contours.sort_contours(cnts)
pixelsPerMetric = None pixelsPerMetric = None
num = 0 num = 0
@ -220,7 +220,7 @@ for c in cnts:
#cv2.drawContours(orig, [box.astype("int")], -1, (0, 255, 0), 2) #cv2.drawContours(orig, [box.astype("int")], -1, (0, 255, 0), 2)
else: else:
circular = True circular = True
cv2.circle(orig,(int(x),int(y)),int(radius),(0,255,0),2) cv2.circle(orig,(int(x),int(y)),int(radius),(0,255,0),1)
objtype = "Unknown" objtype = "Unknown"
@ -246,8 +246,8 @@ for c in cnts:
hull2 = cv2.convexHull(c) hull2 = cv2.convexHull(c)
defects = cv2.convexityDefects(c,hull) defects = cv2.convexityDefects(c,hull)
#print(str(defects.size) + " match") #print(str(defects.size) + " match")
cv2.drawContours(orig, (hull2), -1, (0, 0, 255), 8) cv2.drawContours(orig, (hull2), -1, (0, 0, 255), 3)
cv2.drawContours(orig, (approx), -1, (255, 0, 0), 6) cv2.drawContours(orig, (approx), -1, (255, 0, 0), 3)
convexness = area_contour / cv2.contourArea(hull2) convexness = area_contour / cv2.contourArea(hull2)
#print(str(convexness) + " % fill") #print(str(convexness) + " % fill")
#if not cv2.isContourConvex(approx): #if not cv2.isContourConvex(approx):
@ -282,7 +282,7 @@ for c in cnts:
swap(xpos, xpos2) swap(xpos, xpos2)
swap(ypos, ypos2) swap(ypos, ypos2)
if rectangular: if rectangular:
cv2.line(orig,(int(xpos),int(ypos)),(int(xpos2), int(ypos2)),(0,255,0),2) cv2.line(orig,(int(xpos),int(ypos)),(int(xpos2), int(ypos2)),(0,255,0),1)
#print(str(iteml)) #print(str(iteml))
# draw the object sizes on the image # draw the object sizes on the image
if args2.show: if args2.show:
@ -292,25 +292,19 @@ for c in cnts:
cv2.putText(orig, str(objtype), cv2.putText(orig, str(objtype),
(int(xpos2 + 10), int(ypos2 + 20)), cv2.FONT_HERSHEY_SIMPLEX, (int(xpos2 + 10), int(ypos2 + 20)), cv2.FONT_HERSHEY_SIMPLEX,
0.65, (255, 255, 255), 2) 0.65, (255, 255, 255), 2)
output = ""
if objtype == "Unknown": if objtype == "Unknown":
cv2.putText(orig, "{:.2f}in".format(itemw) + " x {:.2f}in".format(itemh), # print axle length output = "{:.2f}in".format(itemw) + " x {:.2f}in".format(itemh)
(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX, if objtype == "Screw" or objtype == "Standoff":
0.65, (255, 255, 255), 2) output = str(iteml) + "in"
if objtype == "Screw":
cv2.putText(orig, str(iteml) + "in", # print screw length
(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
0.65, (255, 255, 255), 2)
if objtype == "Standoff":
cv2.putText(orig, str(iteml) + "in", # print standoff length
(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
0.65, (255, 255, 255), 2)
if objtype == "Axle": if objtype == "Axle":
cv2.putText(orig, "{:.2f}in".format(iteml), # print axle length output = "{:.2f}in".format(iteml)
(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX, cv2.putText(orig, output, # print data
0.65, (255, 255, 255), 2) (int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
0.65, (255, 255, 255), 2)
# show the output image # show the output image
cv2.imshow("Item Sorter", orig) cv2.imshow("Item Sorter", orig)
cv2.waitKey(100) cv2.waitKey(25)
cv2.waitKey(0) cv2.waitKey(0)
Loading…
Cancel
Save