Merge pull request #3480 from mshabunin:python-test-24
This commit is contained in:
commit
4f82b3588a
@ -13,6 +13,7 @@ import os
|
|||||||
import getopt
|
import getopt
|
||||||
import operator
|
import operator
|
||||||
import functools
|
import functools
|
||||||
|
import argparse
|
||||||
|
|
||||||
import cv2.cv as cv
|
import cv2.cv as cv
|
||||||
|
|
||||||
@ -20,6 +21,15 @@ from test2 import *
|
|||||||
|
|
||||||
class OpenCVTests(unittest.TestCase):
|
class OpenCVTests(unittest.TestCase):
|
||||||
|
|
||||||
|
# path to local repository folder containing 'samples' folder
|
||||||
|
repoPath = None
|
||||||
|
# github repository url
|
||||||
|
repoUrl = 'https://raw.github.com/Itseez/opencv/2.4'
|
||||||
|
# path to local folder containing 'camera_calibration.tar.gz'
|
||||||
|
dataPath = None
|
||||||
|
# data url
|
||||||
|
dataUrl = 'http://docs.opencv.org/data'
|
||||||
|
|
||||||
depths = [ cv.IPL_DEPTH_8U, cv.IPL_DEPTH_8S, cv.IPL_DEPTH_16U, cv.IPL_DEPTH_16S, cv.IPL_DEPTH_32S, cv.IPL_DEPTH_32F, cv.IPL_DEPTH_64F ]
|
depths = [ cv.IPL_DEPTH_8U, cv.IPL_DEPTH_8S, cv.IPL_DEPTH_16U, cv.IPL_DEPTH_16S, cv.IPL_DEPTH_32S, cv.IPL_DEPTH_32F, cv.IPL_DEPTH_64F ]
|
||||||
|
|
||||||
mat_types = [
|
mat_types = [
|
||||||
@ -73,12 +83,28 @@ class OpenCVTests(unittest.TestCase):
|
|||||||
|
|
||||||
def get_sample(self, filename, iscolor = cv.CV_LOAD_IMAGE_COLOR):
|
def get_sample(self, filename, iscolor = cv.CV_LOAD_IMAGE_COLOR):
|
||||||
if not filename in self.image_cache:
|
if not filename in self.image_cache:
|
||||||
filedata = urllib.urlopen("https://raw.github.com/Itseez/opencv/2.4/" + filename).read()
|
filedata = None
|
||||||
|
if OpenCVTests.repoPath is not None:
|
||||||
|
candidate = OpenCVTests.repoPath + '/' + filename
|
||||||
|
if os.path.isfile(candidate):
|
||||||
|
with open(candidate, 'rb') as f:
|
||||||
|
filedata = f.read()
|
||||||
|
if filedata is None:
|
||||||
|
filedata = urllib.urlopen(OpenCVTests.repoUrl + '/' + filename).read()
|
||||||
imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1)
|
imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1)
|
||||||
cv.SetData(imagefiledata, filedata, len(filedata))
|
cv.SetData(imagefiledata, filedata, len(filedata))
|
||||||
self.image_cache[filename] = cv.DecodeImageM(imagefiledata, iscolor)
|
self.image_cache[filename] = cv.DecodeImageM(imagefiledata, iscolor)
|
||||||
return self.image_cache[filename]
|
return self.image_cache[filename]
|
||||||
|
|
||||||
|
def get_data(self, filename, urlbase):
|
||||||
|
if (not os.path.isfile(filename)):
|
||||||
|
if OpenCVTests.dataPath is not None:
|
||||||
|
candidate = OpenCVTests.dataPath + '/' + filename
|
||||||
|
if os.path.isfile(candidate):
|
||||||
|
return candidate
|
||||||
|
urllib.urlretrieve(urlbase + '/' + filename, filename)
|
||||||
|
return filename
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.image_cache = {}
|
self.image_cache = {}
|
||||||
|
|
||||||
@ -1646,9 +1672,8 @@ class AreaTests(OpenCVTests):
|
|||||||
cv.SetData(imagefiledata, filedata, len(filedata))
|
cv.SetData(imagefiledata, filedata, len(filedata))
|
||||||
return cv.DecodeImageM(imagefiledata)
|
return cv.DecodeImageM(imagefiledata)
|
||||||
|
|
||||||
if (not os.path.isfile("camera_calibration.tar.gz")):
|
filename = self.get_data("camera_calibration.tar.gz", OpenCVTests.dataUrl)
|
||||||
urllib.urlretrieve("http://docs.opencv.org/data/camera_calibration.tar.gz", "camera_calibration.tar.gz")
|
tf = tarfile.open(filename)
|
||||||
tf = tarfile.open("camera_calibration.tar.gz")
|
|
||||||
|
|
||||||
num_x_ints = 8
|
num_x_ints = 8
|
||||||
num_y_ints = 6
|
num_y_ints = 6
|
||||||
@ -2204,9 +2229,20 @@ class DocumentFragmentTests(OpenCVTests):
|
|||||||
self.assertNotEqual(self.hashimg(h1), self.hashimg(h2))
|
self.assertNotEqual(self.hashimg(h1), self.hashimg(h2))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(description='run OpenCV python tests')
|
||||||
|
parser.add_argument('--repo', help='use sample image files from local git repository (path to folder), '
|
||||||
|
'if not set, samples will be downloaded from github.com')
|
||||||
|
parser.add_argument('--data', help='use data files from local folder (path to folder), '
|
||||||
|
'if not set, data files will be downloaded from docs.opencv.org')
|
||||||
|
args, other = parser.parse_known_args()
|
||||||
print "testing", cv.__version__
|
print "testing", cv.__version__
|
||||||
|
print "Local repo path:", args.repo
|
||||||
|
print "Local data path:", args.data
|
||||||
|
OpenCVTests.repoPath = args.repo
|
||||||
|
OpenCVTests.dataPath = args.data
|
||||||
random.seed(0)
|
random.seed(0)
|
||||||
unittest.main()
|
unit_argv = [sys.argv[0]] + other;
|
||||||
|
unittest.main(argv=unit_argv)
|
||||||
# optlist, args = getopt.getopt(sys.argv[1:], 'l:rd')
|
# optlist, args = getopt.getopt(sys.argv[1:], 'l:rd')
|
||||||
# loops = 1
|
# loops = 1
|
||||||
# shuffle = 0
|
# shuffle = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user