def test_regression(): np.random.seed(220) img = np.random.random_sample((1024, 1024)) img *= 255 img = img.astype(np.uint8) features = pftas(img) assert not np.any(features == 0.)
def test_regression(): np.random.seed(220) img = np.random.random_sample((1024,1024)) img *= 255 img = img.astype(np.uint8) features = pftas(img) assert not np.any(features == 0.)
def calculate(self, resource): """ Append descriptors to SURF h5 table """ #initalizing except_image_only(resource) image_uri = resource.image #image_uri = BQServer().prepare_url(image_uri, remap='display') im = image2numpy(image_uri, remap='display') im = np.uint8(im) descriptor = pftas(im) #initalizing rows for the table return descriptor
def get_mahotas_features(image, bin_image): """ """ # pdb.set_trace() zer = zernike.zernike_moments(image, len(image)/2) #adding 25 mm = [] for i in range(7): for j in range(7): mm.append(np.log10(moments(image, i,j))) #adding 49 rou = features.roundness(bin_image) #adding 1 el1 = features.ellipse_axes(bin_image)[0] el2 = features.ellipse_axes(bin_image)[0]#adding 2 exe = features.eccentricity(bin_image) #adding 1 pft = features.pftas(image) #adding 54 hara = mahotas.features.haralick(image).reshape(-1) #adding 52 # return np.concatenate((zer, np.array([rou]), np.array(ellip), hara.reshape(-1), lbps.reshape(-1))) #adding in total 184 features return np.concatenate((zer, np.array(mm), np.array([rou, el1, el2, exe]), pft, hara))
def get_TAS(img_array, grid_size=4): """ Parameterless TAS for one image. :param img_array: :param grid_size: :return: 27* grid_size^2 (check) """ img = np.asarray(img_array) window_size = (np.asarray([img.shape])[0:2] / grid_size).astype(int)[0] im_grid = np.asarray(skimage.util.view_as_blocks(img, tuple([window_size[0], window_size[1], 3]))) windows = [] for i in range(grid_size): for j in range(grid_size): windows.append(im_grid[i, j, 0]) tas_features = [] for i in range(len(windows)): t = pftas(windows[i]) t = np.ravel(np.asarray(t)) tas_features.append(t) out = np.ravel(np.asarray(tas_features)) return out
def get_TAS(im, grid_size=4): """ Parameterless TAS para una imagen. :param im_path: :param grid_size: :return: 27* grid_size^2 (check) """ if type(im) == str: img = mahotas.imread(im) else: img = im window_size = (np.asarray([img.shape])[0:2] / grid_size).astype(int)[0] if len(img.shape) == 3: im_grid = np.asarray( skimage.util.view_as_blocks( img, tuple([window_size[0], window_size[1], 3]))) windows = [] for i in range(grid_size): for j in range(grid_size): windows.append(im_grid[i, j, 0]) else: im_grid = np.asarray( skimage.util.view_as_blocks(img, tuple(window_size))) windows = [] for i in range(grid_size): for j in range(grid_size): windows.append(im_grid[i, j]) tas_features = [] for i in range(len(windows)): # if (i % 10 == 0): # print("|", end="", flush=True) t = pftas(windows[i]) t = np.ravel(np.asarray(t)) tas_features.append(t) # print(" ") out = np.ravel(np.asarray(tas_features)) return out
def test_tas(): np.random.seed(22) f = np.random.rand(1024, 1024) f = (f * 255).astype(np.uint8) assert np.abs(tas(f).sum()-6) < 0.0001 assert np.abs(pftas(f).sum()-6) < 0.0001
def test_zero_image(): features = pftas(np.zeros((64,64), np.uint8)) assert not np.any(np.isnan(features))
def test_tas(): np.random.seed(22) f = np.random.rand(1024, 1024) f = (f * 255).astype(np.uint8) assert np.abs(tas(f).sum() - 6) < 0.0001 assert np.abs(pftas(f).sum() - 6) < 0.0001
def test_zero_image(): features = pftas(np.zeros((64, 64), np.uint8)) assert not np.any(np.isnan(features))
def masked_pftas(intensity_image): T = otsu(intensity_image, ignore_zeros=True) return pftas(intensity_image, T=T)