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
Esempio n. 2
0
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, "")
Esempio n. 5
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