| | |
| | | if __name__ == '__main__': |
| | | #img_test = cv2.imread('data/rtr-174-jarad-golgari-lich-lord.jpg') |
| | | #img_test = cv2.imread('data/cn2-78-queen-marchesa.png') |
| | | #img_test = cv2.imread('data/c16-143-burgeoning.png') |
| | | #img_test = cv2.imread('data/handOfCards.jpg') |
| | | img_test = cv2.imread('data/pro_tour_side.png') |
| | | img_test = cv2.imread('data/c16-143-burgeoning.png') |
| | | # img_test = cv2.imread('data/li38_handOfCards.jpg') |
| | | # img_test = cv2.imread('data/pro_tour_side.png') |
| | | img_gray = cv2.cvtColor(img_test, cv2.COLOR_BGR2GRAY) |
| | | _, img_thresh = cv2.threshold(img_gray, 80, 255, cv2.THRESH_BINARY) |
| | | _, img_thresh = cv2.threshold(img_gray, 50, 255, cv2.THRESH_BINARY) |
| | | #cv2.imshow('original', img_test) |
| | | cv2.imshow('threshold', img_thresh) |
| | | |
| | | kernel = np.ones((4, 4), np.uint8) |
| | | kernel = np.ones((7, 7), np.uint8) |
| | | img_dilate = cv2.dilate(img_thresh, kernel, iterations=1) |
| | | #img_erode = cv2.erode(img_thresh, kernel, iterations=1) |
| | | #img_open = cv2.morphologyEx(img_thresh, cv2.MORPH_OPEN, kernel) |
| | |
| | | #cv2.imshow('eroded', img_erode) |
| | | #cv2.imshow('opened', img_open) |
| | | #cv2.imshow('closed', img_close) |
| | | img_edge = cv2.Canny(img_dilate, 100, 200) |
| | | cv2.imshow('edge', img_edge) |
| | | |
| | | cv2.waitKey(0) |
| | | lines = cv2.HoughLines(img_edge, 1, np.pi / 180, 200) |
| | | if lines is not None: |
| | | img_hough = cv2.cvtColor(img_dilate.copy(), cv2.COLOR_GRAY2BGR) |
| | | for line in lines: |
| | | rho, theta = line[0] |
| | | a = np.cos(theta) |
| | | b = np.sin(theta) |
| | | x0 = a * rho |
| | | y0 = b * rho |
| | | x1 = int(x0 + 1000 * (-b)) |
| | | y1 = int(y0 + 1000 * (a)) |
| | | x2 = int(x0 - 1000 * (-b)) |
| | | y2 = int(y0 - 1000 * (a)) |
| | | cv2.line(img_hough, (x1, y1), (x2, y2), (0, 0, 255), 2) |
| | | cv2.imshow('hough', img_hough) |
| | | else: |
| | | print('Hough couldn\'t find any lines') |
| | | ''' |
| | | lines = cv2.HoughLinesP(img_edge, 1, np.pi / 180, 200, 50, 100) |
| | | if lines is not None: |
| | | img_hough = cv2.cvtColor(img_dilate.copy(), cv2.COLOR_GRAY2BGR) |
| | | for line in lines: |
| | | x1, y1, x2, y2 = line[0] |
| | | cv2.line(img_hough, (x1, y1), (x2, y2), (0, 0, 255), 3) |
| | | cv2.imshow('hough', img_hough) |
| | | else: |
| | | print('Hough couldn\'t find any lines') |
| | | |
| | | img_contour, contours, hierchy = cv2.findContours(img_dilate, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) |
| | | img_contour = cv2.cvtColor(img_contour, cv2.COLOR_GRAY2BGR) |
| | | if len(contours) > 0: |
| | | cv2.drawContours(img_contour, contours, -1, (0, 0, 255), 1) |
| | | |
| | | cv2.imshow('contours', img_contour) |
| | | ''' |
| | | cv2.waitKey(0 |