Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/python/test/test_misc.py
16337 views
1
#!/usr/bin/env python
2
from __future__ import print_function
3
4
import numpy as np
5
import cv2 as cv
6
7
from tests_common import NewOpenCVTests
8
9
class Bindings(NewOpenCVTests):
10
11
def test_inheritance(self):
12
bm = cv.StereoBM_create()
13
bm.getPreFilterCap() # from StereoBM
14
bm.getBlockSize() # from SteroMatcher
15
16
boost = cv.ml.Boost_create()
17
boost.getBoostType() # from ml::Boost
18
boost.getMaxDepth() # from ml::DTrees
19
boost.isClassifier() # from ml::StatModel
20
21
22
def test_redirectError(self):
23
try:
24
cv.imshow("", None) # This causes an assert
25
self.assertEqual("Dead code", 0)
26
except cv.error as _e:
27
pass
28
29
handler_called = [False]
30
def test_error_handler(status, func_name, err_msg, file_name, line):
31
handler_called[0] = True
32
33
cv.redirectError(test_error_handler)
34
try:
35
cv.imshow("", None) # This causes an assert
36
self.assertEqual("Dead code", 0)
37
except cv.error as _e:
38
self.assertEqual(handler_called[0], True)
39
pass
40
41
cv.redirectError(None)
42
try:
43
cv.imshow("", None) # This causes an assert
44
self.assertEqual("Dead code", 0)
45
except cv.error as _e:
46
pass
47
48
49
class Arguments(NewOpenCVTests):
50
51
def test_InputArray(self):
52
res1 = cv.utils.dumpInputArray(None)
53
#self.assertEqual(res1, "InputArray: noArray()") # not supported
54
self.assertEqual(res1, "InputArray: empty()=true kind=0x00010000 flags=0x01010000 total(-1)=0 dims(-1)=0 size(-1)=0x0 type(-1)=CV_8UC1")
55
res2_1 = cv.utils.dumpInputArray((1, 2))
56
self.assertEqual(res2_1, "InputArray: empty()=false kind=0x00010000 flags=0x01010000 total(-1)=2 dims(-1)=2 size(-1)=1x2 type(-1)=CV_64FC1")
57
res2_2 = cv.utils.dumpInputArray(1.5) # Scalar(1.5, 1.5, 1.5, 1.5)
58
self.assertEqual(res2_2, "InputArray: empty()=false kind=0x00010000 flags=0x01010000 total(-1)=4 dims(-1)=2 size(-1)=1x4 type(-1)=CV_64FC1")
59
a = np.array([[1,2],[3,4],[5,6]])
60
res3 = cv.utils.dumpInputArray(a) # 32SC1
61
self.assertEqual(res3, "InputArray: empty()=false kind=0x00010000 flags=0x01010000 total(-1)=6 dims(-1)=2 size(-1)=2x3 type(-1)=CV_32SC1")
62
a = np.array([[[1,2],[3,4],[5,6]]], dtype='f')
63
res4 = cv.utils.dumpInputArray(a) # 32FC2
64
self.assertEqual(res4, "InputArray: empty()=false kind=0x00010000 flags=0x01010000 total(-1)=3 dims(-1)=2 size(-1)=3x1 type(-1)=CV_32FC2")
65
a = np.array([[[1,2]],[[3,4]],[[5,6]]], dtype=float)
66
res5 = cv.utils.dumpInputArray(a) # 64FC2
67
self.assertEqual(res5, "InputArray: empty()=false kind=0x00010000 flags=0x01010000 total(-1)=3 dims(-1)=2 size(-1)=1x3 type(-1)=CV_64FC2")
68
69
70
def test_InputArrayOfArrays(self):
71
res1 = cv.utils.dumpInputArrayOfArrays(None)
72
#self.assertEqual(res1, "InputArray: noArray()") # not supported
73
self.assertEqual(res1, "InputArrayOfArrays: empty()=true kind=0x00050000 flags=0x01050000 total(-1)=0 dims(-1)=1 size(-1)=0x0")
74
res2_1 = cv.utils.dumpInputArrayOfArrays((1, 2)) # { Scalar:all(1), Scalar::all(2) }
75
self.assertEqual(res2_1, "InputArrayOfArrays: empty()=false kind=0x00050000 flags=0x01050000 total(-1)=2 dims(-1)=1 size(-1)=2x1 type(0)=CV_64FC1 dims(0)=2 size(0)=1x4 type(0)=CV_64FC1")
76
res2_2 = cv.utils.dumpInputArrayOfArrays([1.5])
77
self.assertEqual(res2_2, "InputArrayOfArrays: empty()=false kind=0x00050000 flags=0x01050000 total(-1)=1 dims(-1)=1 size(-1)=1x1 type(0)=CV_64FC1 dims(0)=2 size(0)=1x4 type(0)=CV_64FC1")
78
a = np.array([[1,2],[3,4],[5,6]])
79
b = np.array([[1,2,3],[4,5,6],[7,8,9]])
80
res3 = cv.utils.dumpInputArrayOfArrays([a, b])
81
self.assertEqual(res3, "InputArrayOfArrays: empty()=false kind=0x00050000 flags=0x01050000 total(-1)=2 dims(-1)=1 size(-1)=2x1 type(0)=CV_32SC1 dims(0)=2 size(0)=2x3 type(0)=CV_32SC1")
82
c = np.array([[[1,2],[3,4],[5,6]]], dtype='f')
83
res4 = cv.utils.dumpInputArrayOfArrays([c, a, b])
84
self.assertEqual(res4, "InputArrayOfArrays: empty()=false kind=0x00050000 flags=0x01050000 total(-1)=3 dims(-1)=1 size(-1)=3x1 type(0)=CV_32FC2 dims(0)=2 size(0)=3x1 type(0)=CV_32FC2")
85
86
87
88
if __name__ == '__main__':
89
NewOpenCVTests.bootstrap()
90
91