Source code for pyhesaff.tests.pyhestest

from __future__ import absolute_import, print_function, division
# Standard
import sys
from os.path import realpath, join, split
from vtool.tests import grabdata
# Scientific
import numpy as np
import cv2
# TPL
import pyhesaff
import utool
utool.inject_colored_exceptions()


[docs]def get_test_image(): img_fname = 'zebra.jpg' if '--zebra.png' in sys.argv: img_fname = 'zebra.jpg' if '--lena.png' in sys.argv: img_fname = 'lena.jpg' if '--jeff.png' in sys.argv: img_fname = 'jeff.png' imgdir = grabdata.get_testdata_dir() img_fpath = realpath(join(imgdir, img_fname)) return img_fpath
[docs]def load_test_data(short=False, n=0, use_cpp=False, **kwargs): if 'short' not in vars(): short = False # Read Image #ellipse.rrr() nScales = 4 nSamples = 16 img_fpath = get_test_image() imgBGR = cv2.imread(img_fpath) imgLAB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2LAB) imgL = imgLAB[:, :, 0] detect_kwargs = { 'scale_min': 20, 'scale_max': 100 } detect_kwargs.update(kwargs) if not use_cpp: kpts, desc = pyhesaff.detect_kpts(img_fpath, **detect_kwargs) else: # Try the new C++ code [kpts], [desc] = pyhesaff.detect_kpts_list([img_fpath], **detect_kwargs) if short and n > 0: extra_fxs = [] if split(img_fpath)[1] == 'zebra.png': extra_fxs = [374, 520, 880][0:1] fxs = np.array(spaced_elements2(kpts, n).tolist() + extra_fxs) kpts = kpts[fxs] desc = desc[fxs] test_data = locals() return test_data
[docs]def spaced_elements2(list_, n): if n is None: return np.arange(len(list_)) if n == 0: return np.empty(0) indexes = np.arange(len(list_)) stride = len(indexes) // n return indexes[0:-1:stride]
[docs]def spaced_elements(list_, n): if n is None: return 'list' indexes = np.arange(len(list_)) stride = len(indexes) // n return list_[indexes[0:-1:stride]]