def full_image_similarity(image): image_rgb = skutil.img_as_float(image) image_gray = cl.rgb2gray(image_rgb) gabor_responses = feat.compute_gabor_responses(image_gray, gabor_kernels) active_mask = np.ones(image.shape).astype('uint8') * 255 query_features = feat.sim_feature_extraction(image_rgb, gabor_responses, active_mask)
def feature_extraction(image, mask): """ similarity feature extraction """ image_gray = cl.rgb2gray(skutil.img_as_float(image)) # get gabor response from the whole image gabor_responses = feat.compute_gabor_responses(image_gray, gabor_kernels) # extract features return feat.sim_feature_extraction(image, gabor_responses, mask)
image = tran.rescale(image, scale=(scale, scale)) image_gray = color.rgb2gray(image) # load mask mask_path = args.image_query.split(extension)[0] + "_mask" + extension mmask = io.imread(mask_path) mmask = tran.rescale(mmask, scale=(scale, scale)) mask = np.zeros(mmask.shape, dtype='uint8') mask[mmask > 0] = 255 mask = mask.reshape(mask.shape[0], mask.shape[1], 1).repeat(3, axis=2) # get gabor response from the whole image gabor_responses = feat.compute_gabor_responses(image_gray, gabor_kernels) # extract features from test image query_features = feat.sim_feature_extraction(image, gabor_responses, mask) # build KD Tree K = 10 dists, indices = tree.query(query_features.reshape(1, -1), k=K) # visualize query image fig = plt.figure("vis") ax0 = fig.add_subplot(1, 11, 1) ax0.imshow(image) ax0.set_xticks([]) ax0.set_yticks([]) ax0.set_title("query image") # visualize results for i, idx in enumerate(indices[0]):
ax3 = fig.add_subplot(2, n_axis, i + 3) ax3.set_title(true_labels[str(label)]) ax3.imshow(cropped) # get similar clothings (tree, image_paths) = pickle.load(open(args.sim_features, 'rb')) # get gabor response from the region image_rgb = skutil.img_as_float(image) image_gray = cl.rgb2gray(image_rgb) gabor_responses = feat.compute_gabor_responses(image_gray, gabor_kernels) # extract features from test image active_mask = segment_masks[unique_labels.index(4)].astype('uint8') * 255 query_features = feat.sim_feature_extraction(image_rgb, gabor_responses, active_mask) # build KD Tree dists, indices = tree.query(query_features.reshape(1, -1), k=n_axis) # visualize similar results for i, idx in enumerate(indices[0]): im = io.imread(image_paths[idx]['full']) ax4 = fig.add_subplot(2, n_axis, i + n_axis + 1) ax4.imshow(im) ax4.set_xticks([]) ax4.set_yticks([]) ax4.set_title("similar #%i" % (i + 1)) plt.show() plt.show()