1 import Printer
, time
, cv2
3 from utils
import Gcode
5 params
= cv2
.SimpleBlobDetector_Params()
8 params
.minThreshold
= 1
9 params
.maxThreshold
= 256
11 params
.filterByArea
= True
14 params
.filterByConvexity
= False
15 params
.filterByInertia
= False
17 detector
= cv2
.SimpleBlobDetector_create(params
)
19 cap
= cv2
.VideoCapture(0)
26 lowerBound
=np
.array([0,180,20])
27 upperBound
=np
.array([20,255,255])
29 cv2
.namedWindow('image')
34 cv2
.createTrackbar('Open','image',openVal
,20,nothing
)
35 cv2
.createTrackbar('Close','image',closeVal
,40,nothing
)
36 cv2
.createTrackbar('Erode','image',erode
,30,nothing
)
37 cv2
.createTrackbar('Dilate','image',dilate
,30,nothing
)
43 hsv
= cv2
.cvtColor(img
, cv2
.COLOR_BGR2HSV
)
44 mask
= cv2
.inRange(hsv
, lowerBound
, upperBound
)
47 kernelOpen
=np
.ones((cv2
.getTrackbarPos('Open','image'), cv2
.getTrackbarPos('Open','image')))
48 kernelClose
=np
.ones((cv2
.getTrackbarPos('Close','image'), cv2
.getTrackbarPos('Close','image')))
49 kernelErode
=np
.ones((cv2
.getTrackbarPos('Erode','image'), cv2
.getTrackbarPos('Erode','image')))
50 kernelDilate
=np
.ones((cv2
.getTrackbarPos('Dilate','image'), cv2
.getTrackbarPos('Dilate','image')))
52 mask
=cv2
.morphologyEx(mask
, cv2
.MORPH_OPEN
, kernelOpen
, iterations
= 1)
53 mask
=cv2
.morphologyEx(mask
, cv2
.MORPH_CLOSE
, kernelClose
, iterations
= 2)
54 mask
= cv2
.erode(mask
, kernelErode
, iterations
= 1)
55 mask
= cv2
.dilate(mask
, kernelDilate
, iterations
= 1)
58 maskImg
= cv2
.bitwise_and(img
,img
, mask
= mask
)
60 maskImg
= 255 - maskImg
62 points
= detector
.detect(maskImg
)
67 img
= cv2
.drawKeypoints(img
, points
, np
.array([]), (255,0,0), cv2
.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS
)
69 cv2
.imshow('image', maskImg
)
70 cv2
.imshow('wut', img
)
72 command
= cv2
.waitKey(10) & 0xFF
73 if command
== ord('q'):