better drawing, faster text
This commit is contained in:
		
							
								
								
									
										34
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								main.py
									
									
									
									
									
								
							@@ -101,7 +101,7 @@ cnts = imutils.grab_contours(cnts)
 | 
			
		||||
 | 
			
		||||
# sort the contours from left-to-right and initialize the
 | 
			
		||||
# 'pixels per metric' calibration variable
 | 
			
		||||
(cnts, _) = contours.sort_contours(cnts)
 | 
			
		||||
#(cnts, _) = contours.sort_contours(cnts)
 | 
			
		||||
pixelsPerMetric = None
 | 
			
		||||
num = 0
 | 
			
		||||
 | 
			
		||||
@@ -220,7 +220,7 @@ for c in cnts:
 | 
			
		||||
			#cv2.drawContours(orig, [box.astype("int")], -1, (0, 255, 0), 2)
 | 
			
		||||
		else:
 | 
			
		||||
			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"
 | 
			
		||||
@@ -246,8 +246,8 @@ for c in cnts:
 | 
			
		||||
			hull2 = cv2.convexHull(c)
 | 
			
		||||
			defects = cv2.convexityDefects(c,hull)
 | 
			
		||||
			#print(str(defects.size) + " match")
 | 
			
		||||
			cv2.drawContours(orig, (hull2), -1, (0, 0, 255), 8)
 | 
			
		||||
			cv2.drawContours(orig, (approx), -1, (255, 0, 0), 6)
 | 
			
		||||
			cv2.drawContours(orig, (hull2), -1, (0, 0, 255), 3)
 | 
			
		||||
			cv2.drawContours(orig, (approx), -1, (255, 0, 0), 3)
 | 
			
		||||
			convexness = area_contour / cv2.contourArea(hull2)
 | 
			
		||||
			#print(str(convexness) + " % fill")
 | 
			
		||||
			#if not cv2.isContourConvex(approx):
 | 
			
		||||
@@ -282,7 +282,7 @@ for c in cnts:
 | 
			
		||||
			swap(xpos, xpos2)
 | 
			
		||||
			swap(ypos, ypos2)
 | 
			
		||||
		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))
 | 
			
		||||
		# draw the object sizes on the image
 | 
			
		||||
		if args2.show:
 | 
			
		||||
@@ -292,25 +292,19 @@ for c in cnts:
 | 
			
		||||
			cv2.putText(orig, str(objtype),
 | 
			
		||||
				(int(xpos2 + 10), int(ypos2 + 20)), cv2.FONT_HERSHEY_SIMPLEX,
 | 
			
		||||
				0.65, (255, 255, 255), 2)
 | 
			
		||||
			output = ""
 | 
			
		||||
			if objtype == "Unknown":
 | 
			
		||||
				cv2.putText(orig, "{:.2f}in".format(itemw) + " x {:.2f}in".format(itemh), # print axle length
 | 
			
		||||
					(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
 | 
			
		||||
					0.65, (255, 255, 255), 2)
 | 
			
		||||
			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)
 | 
			
		||||
				output = "{:.2f}in".format(itemw) + " x {:.2f}in".format(itemh)
 | 
			
		||||
			if objtype == "Screw" or objtype == "Standoff":
 | 
			
		||||
				output = str(iteml) + "in"
 | 
			
		||||
			if objtype == "Axle":
 | 
			
		||||
				cv2.putText(orig, "{:.2f}in".format(iteml), # print axle length
 | 
			
		||||
					(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
 | 
			
		||||
					0.65, (255, 255, 255), 2)
 | 
			
		||||
				output = "{:.2f}in".format(iteml)
 | 
			
		||||
			cv2.putText(orig, output, # print data
 | 
			
		||||
				(int(xpos2 + 10), int(ypos2 + 40)), cv2.FONT_HERSHEY_SIMPLEX,
 | 
			
		||||
				0.65, (255, 255, 255), 2)
 | 
			
		||||
 
 | 
			
		||||
	# show the output image
 | 
			
		||||
			cv2.imshow("Item Sorter", orig)
 | 
			
		||||
			cv2.waitKey(100)
 | 
			
		||||
			cv2.waitKey(25)
 | 
			
		||||
 | 
			
		||||
cv2.waitKey(0)
 | 
			
		||||
		Reference in New Issue
	
	Block a user