Beispiel #1
0
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)

	
Beispiel #2
0
    #==========[ 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)
        key = cv2.waitKey(30)
        if key == 27:
            break

    #==========[ Step 5: get descriptors for each corner point	]==========
    print_status('MarkImage', 'getting SIFT descriptors for clicked corners')
    desc = CVAnalysis.get_sift_descriptors(image, corner_keypoints)
    corner_sift_desc = desc

    #==========[ Step 6: construct BoardImage	]==========
    print_status('MarkImage', 'constructing BoardImage object')
    board = Board(image=image,
                  name=image_name,
                  board_points=corner_board_points,
                  image_points=corner_image_points,
                  sift_desc=corner_sift_desc)
Beispiel #3
0
    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	]=====
    lines = cv2.HoughLines(corners_img, 3, np.pi / 180, 6)
    lines = avg_close_lines(lines)
    lines = filter_by_slope(lines)
Beispiel #4
0
	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)
		key = cv2.waitKey(30)
		if key == 27:
			break

	
	#==========[ Step 5: get descriptors for each corner point	]==========
	print_status ('MarkImage', 'getting SIFT descriptors for clicked corners')
	desc = CVAnalysis.get_sift_descriptors (image, corner_keypoints)
	corner_sift_desc = desc


	#==========[ Step 6: construct BoardImage	]==========
	print_status ('MarkImage', 'constructing BoardImage object')	
	board = Board 	(	
						image=image, 
						name=image_name, 
						board_points=corner_board_points, 
						image_points=corner_image_points,
						sift_desc = corner_sift_desc
					)