You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

opencv2.py 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import cv2
  2. import numpy as np
  3. from PIL import Image
  4. from numpy import asarray
  5. import potrace
  6. color = 65280
  7. camera = cv2.VideoCapture(0)
  8. camera.set(cv2.CAP_PROP_FRAME_WIDTH, 160)
  9. camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 120)
  10. camera.set(cv2.CAP_PROP_FPS, 5)
  11. print("camera FPS:{} height:{} width:{}".format(camera.get(cv2.CAP_PROP_FPS), camera.get(cv2.CAP_PROP_FRAME_WIDTH), camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))
  12. while(camera.isOpened()):
  13. pl = []
  14. ret, frame = camera.read()
  15. if ret==True:
  16. gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  17. cv2.Canny(gray, 100,120 )
  18. (thresh, gray) = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
  19. nb = cv2.cvtColor(asarray(gray), cv2.COLOR_RGB2BGR)
  20. image = Image.fromarray(nb).convert("1")
  21. image.save( "/tmp/cv.png")
  22. bmp = potrace.Bitmap( asarray( image ) )
  23. # Trace the bitmap to a path
  24. path= bmp.trace(turdsize=16,alphamax=0.0, opticurve=0, opttolerance=1.0)
  25. # Iterate over path curves
  26. for curve in path:
  27. start = curve.start_point
  28. pl.append([start[0],start[1],0])
  29. pl.append([start[0],start[1],color])
  30. for segment in curve:
  31. end_point_x, end_point_y = segment.end_point
  32. if segment.is_corner:
  33. #c_x, c_y = segment.c
  34. pass
  35. else:
  36. c1_x, c1_y = segment.c1
  37. x, y = segment.c2
  38. pl.append([x,y,color])
  39. pl.append([start[0],start[1],0])
  40. ret, frame = camera.read()
  41. #print(len(pl), flush = True)
  42. print(pl, flush = True)
  43. else:
  44. break
  45. # Release everything if job is finished
  46. camera.release()