1 import cv2
, sys
, Printer
, time
3 from utils
import MaskProcessing
, Detector
, Gcode
4 from User_Interface
import Draw
, MouseManager
, Buttons
, Sliders
6 cap
= cv2
.VideoCapture(0)
7 cv2
.namedWindow('image')
8 printer
= Printer
.Printer('COM3', (200, 200))
9 mouse
= MouseManager
.MouseManager(printer
)
10 sliders
= Sliders
.Sliders('image')
11 detector
= Detector
.InitializeBlobDetector()
13 start_time
= time
.time()
14 buffer_time
= time
.time()
19 colorMask
= MaskProcessing
.GetColorMask(img
, sliders
)
20 processedImg
= MaskProcessing
.ProcessImageMask(colorMask
, img
, sliders
)
22 keyPoints
= detector
.detect(processedImg
)
23 img
= cv2
.drawKeypoints(img
, keyPoints
, np
.array([]), (255, 0, 0), cv2
.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS
)
25 if time
.time() - start_time
> 8:
26 if time
.time() - buffer_time
> .1:
27 if not printer
.packageIsExecuting():
28 print('PRINTER HOMED')
29 points
= [xy
.pt
for xy
in keyPoints
]
30 printer
.sendPackage(points
)
31 buffer_time
= time
.time()
33 Draw
.drawImage(img
, printer
)
35 cv2
.imshow('cum', processedImg
)
36 cv2
.imshow('image', img
)
37 cv2
.imshow('color', colorMask
)
39 if Buttons
.checkButtons(printer
, sliders
): break
42 cv2
.destroyAllWindows()