Repository for OpenCV's extra modules
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

#!/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()