| import cv2 |
| import numpy as np |
|
|
| import lib_ip.block_division as blk |
| import lib_ip.ip_preprocessing as pre |
| import lib_ip.ip_detection as det |
|
|
|
|
| def nothing(x): |
| pass |
|
|
|
|
| def get_contour(org, binary): |
| def cvt_bbox(bbox): |
| ''' |
| x,y,w,h -> colmin, rowmin, colmax, rowmax |
| ''' |
| return bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3] |
|
|
| board = org.copy() |
| hie, contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) |
| res_contour = [] |
| for i in range(len(contours)): |
| if cv2.contourArea(contours[i]) < 200: |
| continue |
| cnt = cv2.approxPolyDP(contours[i], 0.001*cv2.arcLength(contours[i], True), True) |
| res_contour.append(cnt) |
| cv2.drawContours(board, res_contour, -1, (0,0,255), 1) |
| return board |
|
|
|
|
| img_file = 'E:\\Mulong\\Datasets\\rico\\combined\\1014.jpg' |
| resize_height = 800 |
|
|
| cv2.namedWindow('control') |
| cv2.createTrackbar('resize_height', 'control', 800, 1600, nothing) |
| cv2.createTrackbar('grad_min', 'control', 4, 255, nothing) |
| cv2.createTrackbar('grad_min_blk', 'control', 5, 255, nothing) |
| cv2.createTrackbar('c1', 'control', 1, 1000, nothing) |
| cv2.createTrackbar('c2', 'control', 1, 1000, nothing) |
|
|
|
|
| while 1: |
| resize_height = cv2.getTrackbarPos('resize_height', 'control') |
| grad_min = cv2.getTrackbarPos('grad_min', 'control') |
| grad_min_blk = cv2.getTrackbarPos('grad_min_blk', 'control') |
| c1 = cv2.getTrackbarPos('c1', 'control') |
| c2 = cv2.getTrackbarPos('c2', 'control') |
|
|
| org, grey = pre.read_img(img_file, resize_height) |
| |
| |
|
|
| binary = pre.binarization(org, grad_min) |
| binary_r = pre.reverse_binary(binary) |
| |
| cv2.imshow('bijn', binary) |
| cv2.imshow('r', binary_r) |
| cv2.waitKey(10) |
|
|
| |
| |
| |
| |
|
|
| |
| |
|
|
| |
| |
| |
| |
|
|