def main_formes(pictures, points_detection, original): #Recuperate all data from picture (name and position from original). blanck, position = sorting_list(points_detection, original, pictures) #Create this list for area extremity. area_points = [[] for i in range(len(position))] #From data from picture for number in range(len(position)): #Recuperate points from orignal and can place #them before or after the last or next. img = recuperate_points(position, number) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Recuperate points from gray. liste_white_pixels = recuperate_pixels(gray, blanck) #Recuperate white points from gray. recuperate_min_points_liaison(blanck, liste_white_pixels, number, area_points) #Define minimum distance from last points. mini_zone = [] recuperation_distance(mini_zone, area_points, blanck) blanck_copy = cv2.resize(blanck, (800, 800)) show_picture("blanckblanck", blanck_copy, 0, "") return mini_zone, area_points
def points_placements(original, liste_information): original = img = open_picture(original) show_picture("original", original, 0, "") blanck = blanck_picture(img) liste = [] minimum_distance = [] for i in liste_information: img = open_picture(i[0]) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Recup white pixels from gray. liste_pointsX, liste_pointsY, all_points = recup_points(gray) recuperate_extremities_points(all_points, liste_pointsX, liste_pointsY, blanck, liste) #Recuperate last 2 forms connected from list. try: #print(liste[-2], "\n") #print(liste[-1]) x1, y1, x2, y2 = recuperate_mini_distance(liste) minimum_distance.append((x1, y1, x2, y2)) drawsing_lines(blanck, x1, y1, x2, y2, (255, 255, 255)) except: pass #copy_blanck = cv2.resize(blanck, (800, 800)) #show_picture("copy_blanck", copy_blanck, 0, "") #print(liste, "\n") #print(minimum_distance) return liste, minimum_distance
def displaying(gray, copy): #Display help part copy1 = copy.copy() #cv2.imwrite("ici.png", copy1) #cv2.imwrite("iciblanck.png", gray) copy1 = cv2.resize(copy1, (800, 800)) #show_picture("copy1", copy1, 0, "") blanck_resize = cv2.resize(gray, (800, 800)) show_picture("copy1", copy1, 1, "")
def drawing_main(original, oki_picture, a): img = open_picture(original) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) liste = min_distance(a) blanck = blanck_picture(img) for pict in range(len(oki_picture)): form1 = open_picture(oki_picture[pict][0]) form1 = cv2.cvtColor(form1, cv2.COLOR_BGR2GRAY) form2 = open_picture(oki_picture[pict][1]) form2 = cv2.cvtColor(form2, cv2.COLOR_BGR2GRAY) for i in range(len(oki_picture[pict])): if i == 0: form1 = form1 form2 = form2 else: form1 = form2 form2 = form1 #Draw form in function of passation draw_form(form1, blanck) #Recup pixel > 100 liste_w = recup_points(form1) if i == 0: zone = draw_shema(liste[pict][1][0], liste[pict][0], liste[pict][1][1], liste[pict][1][2], blanck) draw_lines_to_zone(liste_w, liste, pict, blanck, zone) #print(zone) copy1 = cv2.resize(blanck, (800, 800)) show_picture("copy1", copy1, 1, "") blanck1 = finish_picture(img, blanck) copy1 = cv2.resize(blanck1, (800, 800)) show_picture("copy1", copy1, 0, "")
def road_test(listex, listey, width, height, blanck, gray, oki_picture, section, nb1, nb2, x, y, dico_picture, nb, nb_add1, nb_add2): """We course 50 pixels. If we course all of them stop If we are less -10 width or height stop If we meet a red pixel stop and count last run increment x or y """ #Course 50 pixels. for counter in range(50): if counter == 49: raising(blanck) break #Break if we pass border of picture. if x >= width - 10 or y >= height - 10: raising(blanck) break #Stop if we meet red pixel. stop = end_condition(x, y, (0, 0, 255), blanck) if stop is True: drawing(blanck, gray, (255, 255, 255)) #Add it to schema dictionnary for key, value in dico_picture.items(): if key == str(nb): dico_picture[key][section] = [counter, x, y] #Raise white pixel for display raising(blanck) break #Put pixel. blanck[x, y] = 255, 255, 255 blanck[x + nb_add1, y + nb_add2] = 255, 255, 255 copy1 = cv2.resize(blanck, (400, 400)) show_picture("copy1", copy1, 1, "") x += nb1 y += nb2
def sorting_list(points_detection, original, pictures): original = open_picture(original) show_picture("original", original, 0, "") blanck = blanck_picture(original) #Recuperate left position. liste_placement = left_position(points_detection) #print(liste_placement) #Recuperate name, position and coordinates. dico = name_position_points(pictures, points_detection, liste_placement) #print(dico) #Final information, name, position. position = final_informations(points_detection, dico) #print(liste_position) return blanck, position