def Flat_Calibration(): blobs_threshold_flat = 240 #170 on laptop blobs_min_size_flat = 1000 CROP_LENGTH = 20 flat_calibration_done = False while (not flat_calibration_done ): # Repeat until flat flap calibration is performed correctly image_and_coords = get_image_and_coords(CROP_LENGTH) flat_image = image_and_coords["image"] Calibration_coords = image_and_coords["coords"] # flat_image = AcquireFlatImage() # Calibration_coords = get_calibration_coordinates(flat_image) print "Approximate coordinates of flap: ", Calibration_coords Calibration_values = ColorAveraging(flat_image, Calibration_coords, CROP_LENGTH) filteredImage = Orange_Flap_V5_Demo.apply_filter( Calibration_values, flat_image) possible_flaps = filteredImage.findBlobs( threshval=blobs_threshold_flat, minsize=blobs_min_size_flat) if possible_flaps > 1: possible_flaps = possible_flaps.sortDistance( point=(Calibration_coords[0], Calibration_coords[1])) # for i in range(0, len(possible_flaps)): # filteredImage.dl().rectangle2pts(possible_flaps[i].topLeftCorner(), # possible_flaps[i].bottomRightCorner(),Color.GREEN, width = 5) # filteredImage.dl().text("%s" %i, (possible_flaps[i].topLeftCorner()), color=Color.RED) elif possible_flaps < 1: print "No possible flaps were found, starting calibration again" demo_images.no_flaps_found(flat_image) continue flap = possible_flaps[0] FlapWHRatio = round(float(flap.width()) / float(flap.height()), 4) result = demo_images.show_detected_orange_flap(flat_image, flap, FlapWHRatio, "Flat") if result == True: flat_calibration_done = True continue else: continue FlapWHRatio = round(float(flap.width()) / float(flap.height()), 4) values = { "AvHue": Calibration_values["AvHue"], "AvSat": Calibration_values["AvSat"], "StdSat": Calibration_values["StdSat"], "FlatWHRatio": FlapWHRatio, "mouseX": Calibration_coords[0], "mouseY": Calibration_coords[1] } return values
def Slope_Calibration(AvHue, AvSat, StdSat, mouseX, mouseY): blobs_threshold_slope = 240 #170 on laptop blobs_min_size_slope = 1000 slope_calibration_done = False while (not slope_calibration_done): demo_images.ask_for_slope_position() slope_image = GetImage() # slope_image = AcquireSlopeImage() filtered_image = Orange_Flap_V5_Demo.apply_filter( { "AvHue": AvHue, "AvSat": AvSat, "StdSat": StdSat }, slope_image) possible_flaps = filtered_image.findBlobs( threshval=blobs_threshold_slope, minsize=blobs_min_size_slope) #CAN ADD SIZES AND STUFF if possible_flaps > 1: possible_flaps = possible_flaps.sortDistance(point=(mouseX, mouseY)) # for i in range(0, len(possible_flaps)): # filtered_image.dl().rectangle2pts(possible_flaps[i].topLeftCorner(), # possible_flaps[i].bottomRightCorner(),Color.GREEN, width = 5) # filtered_image.dl().text("%s" %i, (possible_flaps[i].bottomRightCorner()), color=Color.RED) elif possible_flaps < 1: print "No flap was found, please take another picture" demo_images.no_flaps_found(slope_image) continue flap = possible_flaps[0] SlopeWHRatio = round(float(flap.width()) / float(flap.height()), 4) result = demo_images.show_detected_orange_flap(slope_image, flap, SlopeWHRatio, "Slope") if result == True: slope_calibration_done = True continue else: continue SlopeWHRatio = round(float(flap.width()) / float(flap.height()), 4) return SlopeWHRatio
def Flat_Calibration(): blobs_threshold_flat = 240 #170 on laptop blobs_min_size_flat = 1000 CROP_LENGTH = 20 flat_calibration_done = False while (not flat_calibration_done): # Repeat until flat flap calibration is performed correctly image_and_coords = get_image_and_coords(CROP_LENGTH) flat_image = image_and_coords["image"] Calibration_coords = image_and_coords["coords"] # flat_image = AcquireFlatImage() # Calibration_coords = get_calibration_coordinates(flat_image) print "Approximate coordinates of flap: ", Calibration_coords Calibration_values = ColorAveraging(flat_image, Calibration_coords, CROP_LENGTH) filteredImage = Orange_Flap_V5_Demo.apply_filter(Calibration_values, flat_image) possible_flaps = filteredImage.findBlobs(threshval = blobs_threshold_flat, minsize=blobs_min_size_flat) if possible_flaps > 1: possible_flaps = possible_flaps.sortDistance(point =(Calibration_coords[0], Calibration_coords[1])) # for i in range(0, len(possible_flaps)): # filteredImage.dl().rectangle2pts(possible_flaps[i].topLeftCorner(), # possible_flaps[i].bottomRightCorner(),Color.GREEN, width = 5) # filteredImage.dl().text("%s" %i, (possible_flaps[i].topLeftCorner()), color=Color.RED) elif possible_flaps < 1: print "No possible flaps were found, starting calibration again" demo_images.no_flaps_found(flat_image) continue flap = possible_flaps[0] FlapWHRatio = round(float(flap.width()) / float(flap.height()), 4) result = demo_images.show_detected_orange_flap(flat_image,flap,FlapWHRatio, "Flat") if result == True: flat_calibration_done = True continue else: continue FlapWHRatio = round(float(flap.width()) / float(flap.height()), 4) values = {"AvHue": Calibration_values["AvHue"], "AvSat": Calibration_values["AvSat"], "StdSat": Calibration_values["StdSat"], "FlatWHRatio": FlapWHRatio, "mouseX": Calibration_coords[0], "mouseY": Calibration_coords[1]} return values
def Slope_Calibration(AvHue,AvSat,StdSat,mouseX,mouseY): blobs_threshold_slope = 240 #170 on laptop blobs_min_size_slope = 1000 slope_calibration_done = False while (not slope_calibration_done): demo_images.ask_for_slope_position() slope_image = GetImage() # slope_image = AcquireSlopeImage() filtered_image = Orange_Flap_V5_Demo.apply_filter({"AvHue": AvHue, "AvSat": AvSat, "StdSat": StdSat}, slope_image) possible_flaps = filtered_image.findBlobs(threshval = blobs_threshold_slope, minsize=blobs_min_size_slope) #CAN ADD SIZES AND STUFF if possible_flaps > 1: possible_flaps = possible_flaps.sortDistance(point =(mouseX, mouseY)) # for i in range(0, len(possible_flaps)): # filtered_image.dl().rectangle2pts(possible_flaps[i].topLeftCorner(), # possible_flaps[i].bottomRightCorner(),Color.GREEN, width = 5) # filtered_image.dl().text("%s" %i, (possible_flaps[i].bottomRightCorner()), color=Color.RED) elif possible_flaps < 1: print "No flap was found, please take another picture" demo_images.no_flaps_found(slope_image) continue flap = possible_flaps[0] SlopeWHRatio = round(float(flap.width()) / float(flap.height()), 4) result = demo_images.show_detected_orange_flap(slope_image,flap,SlopeWHRatio, "Slope") if result == True: slope_calibration_done = True continue else: continue SlopeWHRatio = round(float(flap.width()) / float(flap.height()), 4) return SlopeWHRatio