]>
Commit | Line | Data |
---|---|---|
6c4aa5ec | 1 | import Printer, time, cv2 |
2 | import numpy as np | |
c350c4fa | 3 | from utils import Gcode |
5d2f6093 | 4 | |
32d0601c | 5 | params = cv2.SimpleBlobDetector_Params() |
6 | ||
7 | # Change thresholds | |
8 | params.minThreshold = 1 | |
9 | params.maxThreshold = 256 | |
10 | ||
32d0601c | 11 | params.filterByArea = True |
e09ed30e | 12 | params.minArea = 350 |
32d0601c | 13 | |
e09ed30e MR |
14 | params.filterByConvexity = False |
15 | params.filterByInertia = False | |
32d0601c | 16 | |
17 | detector = cv2.SimpleBlobDetector_create(params) | |
6c4aa5ec | 18 | |
e09ed30e MR |
19 | cap = cv2.VideoCapture(0) |
20 | ||
21 | openVal = 1 | |
22 | closeVal = 11 | |
23 | erode = 10 | |
bd9aa932 | 24 | dilate = 8 |
e09ed30e MR |
25 | |
26 | cv2.namedWindow('image') | |
27 | ||
bd9aa932 | 28 | def nothing(x): pass |
e09ed30e MR |
29 | |
30 | cv2.createTrackbar('Open','image',openVal,20,nothing) | |
31 | cv2.createTrackbar('Close','image',closeVal,40,nothing) | |
32 | cv2.createTrackbar('Erode','image',erode,30,nothing) | |
33 | cv2.createTrackbar('Dilate','image',dilate,30,nothing) | |
bd9aa932 | 34 | cv2.createTrackbar('Saturation','image',170,255,nothing) |
e09ed30e MR |
35 | |
36 | while 1: | |
37 | ||
bd9aa932 MR |
38 | kernelOpen=np.ones((cv2.getTrackbarPos('Open','image'), cv2.getTrackbarPos('Open','image'))) |
39 | kernelClose=np.ones((cv2.getTrackbarPos('Close','image'), cv2.getTrackbarPos('Close','image'))) | |
40 | kernelErode=np.ones((cv2.getTrackbarPos('Erode','image'), cv2.getTrackbarPos('Erode','image'))) | |
41 | kernelDilate=np.ones((cv2.getTrackbarPos('Dilate','image'), cv2.getTrackbarPos('Dilate','image'))) | |
42 | saturationMin = cv2.getTrackbarPos('Saturation','image') | |
43 | ||
44 | lowerBound=np.array([0,saturationMin,20]) | |
45 | upperBound=np.array([20,255,255]) | |
46 | ||
e09ed30e MR |
47 | ret, img = cap.read() |
48 | ||
49 | hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) | |
50 | mask = cv2.inRange(hsv, lowerBound, upperBound) | |
51 | ||
52 | ||
e09ed30e MR |
53 | mask=cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernelOpen, iterations = 1) |
54 | mask=cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernelClose, iterations= 2) | |
55 | mask = cv2.erode(mask, kernelErode, iterations = 1) | |
56 | mask = cv2.dilate(mask, kernelDilate, iterations = 1) | |
57 | ||
6c4aa5ec | 58 | |
e09ed30e | 59 | maskImg = cv2.bitwise_and(img,img, mask= mask) |
e09ed30e | 60 | maskImg = 255 - maskImg |
e09ed30e | 61 | points = detector.detect(maskImg) |
e09ed30e | 62 | img = cv2.drawKeypoints(img, points, np.array([]), (255,0,0), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) |
6c4aa5ec | 63 | |
e09ed30e MR |
64 | cv2.imshow('image', maskImg) |
65 | cv2.imshow('wut', img) | |
6c4aa5ec | 66 | |
e09ed30e MR |
67 | command = cv2.waitKey(10) & 0xFF |
68 | if command == ord('q'): | |
69 | break | |
6c4aa5ec | 70 |