You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.6 KiB
39 lines
1.6 KiB
#!/usr/bin/env python |
|
|
|
# Python 2/3 compatibility |
|
from __future__ import print_function |
|
|
|
import os, numpy as np |
|
|
|
import cv2 as cv |
|
|
|
from tests_common import NewOpenCVTests |
|
|
|
class aruco_test(NewOpenCVTests): |
|
|
|
def test_aruco_detect_markers(self): |
|
aruco_params = cv.aruco.DetectorParameters() |
|
aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_250) |
|
id = 2 |
|
marker_size = 100 |
|
offset = 10 |
|
img_marker = cv.aruco.generateImageMarker(aruco_dict, id, marker_size, aruco_params.markerBorderBits) |
|
img_marker = np.pad(img_marker, pad_width=offset, mode='constant', constant_values=255) |
|
gold_corners = np.array([[offset, offset],[marker_size+offset-1.0,offset], |
|
[marker_size+offset-1.0,marker_size+offset-1.0], |
|
[offset, marker_size+offset-1.0]], dtype=np.float32) |
|
expected_corners, expected_ids, expected_rejected = cv.aruco.detectMarkers(img_marker, aruco_dict, |
|
parameters=aruco_params) |
|
|
|
self.assertEqual(1, len(expected_ids)) |
|
self.assertEqual(id, expected_ids[0]) |
|
for i in range(0, len(expected_corners)): |
|
np.testing.assert_array_equal(gold_corners, expected_corners[i].reshape(4, 2)) |
|
|
|
def test_drawCharucoDiamond(self): |
|
aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_50) |
|
img = cv.aruco.drawCharucoDiamond(aruco_dict, np.array([0, 1, 2, 3]), 100, 80) |
|
self.assertTrue(img is not None) |
|
|
|
if __name__ == '__main__': |
|
NewOpenCVTests.bootstrap()
|
|
|