def test_rotated_lena(): """ The harris filter should yield the same results with an image and it's rotation. """ im = img_as_float(data.lena().mean(axis=2)) im_rotated = im.T # Moravec results = peak_local_max(corner_moravec(im)) results_rotated = peak_local_max(corner_moravec(im_rotated)) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all() # Harris results = peak_local_max(corner_harris(im)) results_rotated = peak_local_max(corner_harris(im_rotated)) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all() # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im)) results_rotated = peak_local_max(corner_shi_tomasi(im_rotated)) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all()
def test_rotated_img(): """ The harris filter should yield the same results with an image and it's rotation. """ im = img_as_float(data.astronaut().mean(axis=2)) im_rotated = im.T # Moravec results = peak_local_max(corner_moravec(im), min_distance=10, threshold_rel=0) results_rotated = peak_local_max(corner_moravec(im_rotated), min_distance=10, threshold_rel=0) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all() # Harris results = peak_local_max(corner_harris(im), min_distance=10, threshold_rel=0) results_rotated = peak_local_max(corner_harris(im_rotated), min_distance=10, threshold_rel=0) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all() # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im), min_distance=10, threshold_rel=0) results_rotated = peak_local_max(corner_shi_tomasi(im_rotated), min_distance=10, threshold_rel=0) assert (np.sort(results[:, 0]) == np.sort(results_rotated[:, 1])).all() assert (np.sort(results[:, 1]) == np.sort(results_rotated[:, 0])).all()
def test_rotated_img(): """ The harris filter should yield the same results with an image and it's rotation. """ im = img_as_float(data.astronaut().mean(axis=2)) im_rotated = im.T # Moravec results = np.nonzero(corner_moravec(im)) results_rotated = np.nonzero(corner_moravec(im_rotated)) assert (np.sort(results[0]) == np.sort(results_rotated[1])).all() assert (np.sort(results[1]) == np.sort(results_rotated[0])).all() # Harris results = np.nonzero(corner_harris(im)) results_rotated = np.nonzero(corner_harris(im_rotated)) assert (np.sort(results[0]) == np.sort(results_rotated[1])).all() assert (np.sort(results[1]) == np.sort(results_rotated[0])).all() # Shi-Tomasi results = np.nonzero(corner_shi_tomasi(im)) results_rotated = np.nonzero(corner_shi_tomasi(im_rotated)) assert (np.sort(results[0]) == np.sort(results_rotated[1])).all() assert (np.sort(results[1]) == np.sort(results_rotated[0])).all()
def test_noisy_square_image(): im = np.zeros((50, 50)).astype(float) im[:25, :25] = 1. np.random.seed(seed=1234) im = im + np.random.uniform(size=im.shape) * .2 # Moravec results = peak_local_max(corner_moravec(im), min_distance=10, threshold_rel=0) # undefined number of interest points assert results.any() # Harris results = peak_local_max(corner_harris(im, method='k'), min_distance=10, threshold_rel=0) assert len(results) == 1 results = peak_local_max(corner_harris(im, method='eps'), min_distance=10, threshold_rel=0) assert len(results) == 1 # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im, sigma=1.5), min_distance=10, threshold_rel=0) assert len(results) == 1
def test_square_image(): im = np.zeros((50, 50)).astype(float) im[:25, :25] = 1. # Moravec results = peak_local_max(corner_moravec(im), min_distance=10, threshold_rel=0) # interest points along edge assert len(results) == 57 # Harris results = peak_local_max(corner_harris(im, method='k'), min_distance=10, threshold_rel=0) # interest at corner assert len(results) == 1 results = peak_local_max(corner_harris(im, method='eps'), min_distance=10, threshold_rel=0) # interest at corner assert len(results) == 1 # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im), min_distance=10, threshold_rel=0) # interest at corner assert len(results) == 1
def read_image(self, image_name, size=None): options = self.get_options() if size: im = np.array(Image.open(image_name).convert("L").resize(size)) else: im = np.array(Image.open(image_name).convert("L")) options["image"] = im feature = corner_moravec(**options) # plt.imshow(feature) # plt.show() return feature.reshape((1, feature.shape[0] * feature.shape[1]))[0]
def test_noisy_square_image(): im = np.zeros((50, 50)).astype(float) im[:25, :25] = 1. im = im + np.random.uniform(size=im.shape) * .2 # Moravec results = peak_local_max(corner_moravec(im)) # undefined number of interest points assert results.any() # Harris results = peak_local_max(corner_harris(im, sigma=1.5)) assert len(results) == 1 # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im, sigma=1.5)) assert len(results) == 1
def test_square_image(): im = np.zeros((50, 50)).astype(float) im[:25, :25] = 1. # Moravec results = peak_local_max(corner_moravec(im)) # interest points along edge assert len(results) == 57 # Harris results = peak_local_max(corner_harris(im)) # interest at corner assert len(results) == 1 # Shi-Tomasi results = peak_local_max(corner_shi_tomasi(im)) # interest at corner assert len(results) == 1
def run(self, ips, snap, img, para = None): cimg = feature.corner_moravec(img, window_size=para['size']) pts = feature.corner_peaks(cimg, min_distance=1) ips.roi = ROI([Points(pts[:,::-1])])
def run(self, ips, snap, img, para = None): cimg = feature.corner_moravec(img, window_size=para['size']) pts = feature.corner_peaks(cimg, min_distance=1) self.ips.roi = PointRoi([tuple(i[::-1]) for i in pts])