def square_circle_on_1_2_in_path(path): for i in range(6): im, im_cp = moil.read_and_size_with_copy(str(i), path=path, scale=0.2) im = equalize_border_with_mean_or_val(im) h, w = np.shape(im) r = (int)(h / 8) img_sqd = square_circle_difference_filter_2d(im, r) # img_sqd = square_circle_minus_filter_2d(im, r) # img_sqd = circle_filter_2d(im) img_sqd = cv2.equalizeHist(img_sqd) ret, imt = cv2.threshold(img_sqd, 250, 255, cv2.THRESH_BINARY) cv2.imshow('win2', im_cp) cv2.imshow('win32', img_sqd) moil.show(imt) '''imt2,cnt, hier = cv2.findContours(imt, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
def square_circle_on_1_2_in_path(path): for i in range(2): im, im_cp = moil.read_and_size_with_copy(str(i), scale=0.15) im = cf.equalize_border_with_mean_or_val(im) img_sqd = cf.square_circle_minus_filter_2d(im) img_sqd = cv2.equalizeHist(img_sqd) ret, imt = cv2.threshold(img_sqd, 254, 255, cv2.THRESH_BINARY) imt2, cnt, hier = cv2.findContours(imt, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) h, w = np.shape(im) r = (int)(h / 10) for j in range(len(cnt)): temp = cnt[j] M = cv2.moments(temp) cx = int(M['m10'] / M['m00']) cy = int(M['m01'] / M['m00']) cv2.circle(im_cp, (cx, cy), r)
def trackback_callback(x): global track_val track_val = x def track(name, max, start=0, win='win'): cv2.createTrackbar(name, win, start, max, trackback_callback) def get_track(name, win='win'): return cv2.getTrackbarPos(name, win) for i in range(get_number_of_images_in_path(path)): im, im_cp = moil.read_and_size_with_copy(str(i), scale=0.15) cf.equalize_border_with_mean_or_val(im) negative = False if i >= 2 and i <= 5: negative = True track('thresh', 255) track('r', 100) while (cv2.waitKey(30) != ord('q')): img = cf.circle_filter_2d(im, get_track('r') + 1) img_sqd = cf.square_circle_minus_filter_2d(im, get_track('r') + 1, negative)