def find_BIH (self, empty_board_frame): """ PRIVATE: find_BIH ----------------- given a frame containing the empty board, this function finds the homography relating board coordinates to image coordinates. (sets self.BIH) """ assert self.corner_classifier self.BIH = CVAnalysis.find_board_image_homography (empty_board_frame, self.corner_classifier)
def find_BIH(self, empty_board_frame): """ PRIVATE: find_BIH ----------------- given a frame containing the empty board, this function finds the homography relating board coordinates to image coordinates. (sets self.BIH) """ assert self.corner_classifier self.BIH = CVAnalysis.find_board_image_homography( empty_board_frame, self.corner_classifier)
import pickle import numpy as np import cv2 import CVAnalysis if __name__ == "__main__": #=====[ Step 1: switch to directory ]===== os.chdir ('../data/toy_images') filenames = [ 'random1.jpg', 'random2.jpg', 'random3.jpg', 'random4.jpg', 'random5.jpg', 'random6.jpg', 'random7.jpg', ] images = [cv2.imread (f) for f in filenames] sift_desc = [] for image in images: hc = CVAnalysis.get_harris_corners (image) desc = CVAnalysis.get_sift_descriptors (image, hc) sift_desc.append (desc) features = np.concatenate (sift_desc, 0)
points_grid[line_index].append(corner) #=====[ Step 3: sort each one by y coordinate ]===== for i in range(len(points_grid)): points_grid[i].sort(key=lambda x: x[0]) return points_grid if __name__ == '__main__': #=====[ Step 1: read in image ]===== image = cv2.imread('../data/p2/1.jpg') #=====[ Step 2: get harris corners ]===== hc = CVAnalysis.get_harris_corners(image) #=====[ Step 3: classify them ]===== sd = CVAnalysis.get_sift_descriptors(image, hc) clf = pickle.load(open('../data/classifiers/corner_classifier.clf', 'r')) predictions = clf.predict(sd) idx = (predictions == 1) corners = [c for c, i in zip(hc, idx) if i] corners = avg_close_points(corners) #=====[ Step 3: get black image, fill in corners ]===== corners_img = np.zeros(image.shape[:2], dtype=np.uint8) for corner in corners: corners_img[int(corner[1])][int(corner[0])] = 255 #=====[ Step 4: apply hough transform to get lines ]=====
#==========[ Step 1: sanitize input ]========== if not len(sys.argv) == 2: filename = '../data/micahboard/1.jpg' else: filename = sys.argv[1] image_name = os.path.split(filename)[1] if not os.path.isfile(filename): raise StandardError("Couldn't find the file you passed in: " + image_name) #==========[ Step 2: get/convert image ]========== image = cv2.imread(filename) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) #==========[ Step 3: get corners ]========== harris_corners = CVAnalysis.get_harris_corners(image) disp_image = cv2.drawKeypoints(image, harris_corners, color=(0, 0, 255)) #==========[ Step 4: draw image ]========== cv2.namedWindow('DISPLAY') cv.SetMouseCallback('DISPLAY', on_mouse, param=harris_corners) #==========[ Step 4: have user mark keypoints ]========== while True: disp_image = cv2.drawKeypoints(image, harris_corners, color=(0, 0, 255)) disp_image = cv2.drawKeypoints(disp_image, corner_keypoints, color=(255, 0, 0))
if not len(sys.argv) == 2: filename = '../data/micahboard/1.jpg' else: filename = sys.argv[1] image_name = os.path.split (filename)[1] if not os.path.isfile (filename): raise StandardError ("Couldn't find the file you passed in: " + image_name) #==========[ Step 2: get/convert image ]========== image = cv2.imread(filename) gray = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) #==========[ Step 3: get corners ]========== harris_corners = CVAnalysis.get_harris_corners (image) disp_image = cv2.drawKeypoints (image, harris_corners, color=(0, 0, 255)) #==========[ Step 4: draw image ]========== cv2.namedWindow ('DISPLAY') cv.SetMouseCallback ('DISPLAY', on_mouse, param=harris_corners) #==========[ Step 4: have user mark keypoints ]========== while True: disp_image = cv2.drawKeypoints (image, harris_corners, color=(0, 0, 255)) disp_image = cv2.drawKeypoints (disp_image, corner_keypoints, color=(255, 0, 0)) cv2.imshow ('DISPLAY', disp_image)