Guest User

Untitled

a guest
Jul 17th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. from Tkinter import *
  2. import Image, ImageTk, ImageDraw
  3. import numpy as np
  4.  
  5. coord=[] # for saving coord of each click position
  6. Dict_Polygon={} # Dictionary for saving polygon
  7. list_of_points=[]
  8. flag=True
  9. label=0
  10.  
  11. # Input image
  12. img = Image.open("test.jpg")
  13. draw = ImageDraw.Draw(img)
  14. def draw_lines(event):
  15.  
  16. mouse_xy = (event.x, event.y)
  17. func_Draw_lines(mouse_xy)
  18.  
  19.  
  20. def func_Draw_lines(mouse_xy):
  21.  
  22. center_x, center_y = mouse_xy
  23. if canvas.old_coords:
  24. x1, y1 = canvas.old_coords
  25. canvas.create_line(center_x, center_y, x1, y1)
  26.  
  27. # add clicked positions to list
  28. if flag==True:
  29. list_of_points.append(mouse_xy)
  30. canvas.old_coords = center_x, center_y
  31.  
  32. def draw_poly(event):
  33.  
  34. numberofPoint=len(list_of_points)
  35. if numberofPoint>2:
  36.  
  37. #draw =ImageDraw.Draw(img)
  38. poly=zip(list_of_points)
  39. print(poly)
  40.  
  41. draw.polygon(poly, fill=None, outline=(255, 0, 0))
  42. # label= canvas.create_polygon(list_of_points, fill='', outline='green', width=2)
  43. canvas.old_coords=None
  44. list_of_points[:]=[]
  45.  
  46. # Main function
  47. if __name__ == '__main__':
  48.  
  49. root = Tk()
  50.  
  51. # Draw canvas for iput image to pop up image for clicks
  52. filename = ImageTk.PhotoImage(img)
  53. canvas = Canvas(root,height=img.size[0],width=img.size[0])
  54. canvas.image = filename
  55. canvas.create_image(0,0,anchor='nw',image=filename)
  56. canvas.pack()
  57. canvas.old_coords = None
  58. # bind function to canvas to generate event
  59. canvas.bind("<Button 3>", draw_lines)
  60. canvas.bind("<Button 1>", draw_poly)
  61. root.mainloop()
  62.  
  63. `
Add Comment
Please, Sign In to add comment