def plot_keypoint_scales(hs, fnum=1): print('[dev] plot_keypoint_scales()') cx2_kpts = hs.feats.cx2_kpts cx2_nFeats = map(len, cx2_kpts) kpts = np.vstack(cx2_kpts) print('[dev] --- LaTeX --- ') _printopts = np.get_printoptions() np.set_printoptions(precision=3) print(pytex.latex_scalar(r'\# keypoints, ', len(kpts))) print(pytex.latex_mystats(r'\# keypoints per image', cx2_nFeats)) acd = kpts[:, 2:5].T scales = np.sqrt(acd[0] * acd[2]) scales = np.array(sorted(scales)) print(pytex.latex_mystats(r'keypoint scale', scales)) np.set_printoptions(**_printopts) print('[dev] ---/LaTeX --- ') # df2.figure(fnum=fnum, docla=True, title='sorted scales') df2.plot(scales) df2.adjust_subplots_safe() #ax = df2.gca() #ax.set_yscale('log') #ax.set_xscale('log') # fnum += 1 df2.figure(fnum=fnum, docla=True, title='hist scales') df2.show_histogram(scales, bins=20) df2.adjust_subplots_safe() #ax = df2.gca() #ax.set_yscale('log') #ax.set_xscale('log') return fnum
def viz_localmax(signal1d): #signal1d = np.array(hist) from hsviz import draw_func2 as df2 signal1d = np.array(signal1d) maxpos = np.array(localmax(signal1d)) x_data = range(len(signal1d)) y_data = signal1d df2.figure('localmax vizualization') df2.plot(x_data, y_data) df2.plot(maxpos, signal1d[maxpos], 'ro') df2.update()
def top_matching_features(res, axnum=None, match_type=''): cx2_fs = res.cx2_fs_V cx_fx_fs_list = [] for cx in xrange(len(cx2_fs)): fx2_fs = cx2_fs[cx] for fx in xrange(len(fx2_fs)): fs = fx2_fs[fx] cx_fx_fs_list.append((cx, fx, fs)) cx_fx_fs_sorted = np.array(sorted(cx_fx_fs_list, key=lambda x: x[2])[::-1]) sorted_score = cx_fx_fs_sorted[:, 2] df2.figure(0) df2.plot(sorted_score)