diff --git a/img8.jpg b/img8.jpg new file mode 100644 index 0000000..d66a217 Binary files /dev/null and b/img8.jpg differ diff --git a/main.py b/main.py index 55d1e6e..4acfe53 100644 --- a/main.py +++ b/main.py @@ -68,7 +68,7 @@ if type(args["number"]) == type(selected): # load the image, convert it to grayscale, and blur it slightly image = cv2.imread(args["image"]) -#image = cv2.resize(image, (int(image.shape[1]*0.2), int(image.shape[0]*0.2)), interpolation = cv2.INTER_NEAREST) +#image = cv2.resize(image, (int(image.shape[1]*1), int(image.shape[0]*1))) image = cv2.resize(image, (1000, int(image.shape[0]/image.shape[1] * 1000)), interpolation = cv2.INTER_NEAREST) if args2.show: @@ -137,9 +137,13 @@ for c in cnts: mask = np.zeros(gray.shape,np.uint8) cv2.drawContours(mask,[c],0,255,-1) #pixelpoints = np.transpose(np.nonzero(mask)) - mean_val = cv2.mean(orig,mask = mask) - #print(str(mean_val)) - if pixelsPerMetric is None and circular is True and near(mean_val[0], 63, 30) is True and near(mean_val[1], 108, 30) is True and near(mean_val[2], 104, 30) is True: + hsv = cv2.cvtColor(orig, cv2.COLOR_BGR2HSV) + mean_val = cv2.mean(hsv,mask = mask) + print(str(mean_val[0])) + #print(", " + str(mean_val[0]/mean_val[2])) + #print(", " + str(mean_val[2]/mean_val[1])) + if pixelsPerMetric is None and circular is True and near(mean_val[0], 16, 4.5): + # and near(mean_val[0], 63, 40) is True and near(mean_val[1], 108, 40) is True and near(mean_val[2], 104, 40) is True: pixelsPerMetric = smaller(dA, dB) / args["width"] @@ -242,7 +246,7 @@ for c in cnts: #print(str(convexness) + " % fill") #if not cv2.isContourConvex(approx): #if cv2.matchShapes(hull, c, 1, 0.0) > 1: - if defects.size > 5 and (convexness < 0.9 and boxiness < 0.7): + if defects.size > 5 and (convexness < 0.9 or boxiness < 0.75): objtype = "Screw" iteml = larger(dimA, dimB) #print("Screw Length (RAW): " + str(iteml))