def test_filter_too_close_candidates_equals_aruco_method(self): candidates, contours = aruco._detectInitialCandidates(self.gray) # Use own method to simulate reordering of corners, since Aruco function is not working MarkerDetectPar._reorder_candidate_corners(candidates) # Get test and true values true_cand, true_cont = aruco._filterTooCloseCandidates( candidates, contours, MarkerDetectPar.params[MarkerDetectPar.minMarkerDistanceRate]) test_cand, test_cont = MarkerDetectPar._filter_too_close_candidates( candidates, contours) # Assert equality np.testing.assert_allclose(test_cand, true_cand) np.testing.assert_array_equal(true_cand, true_cont)
def test_reorder_candidate_corners_preserves_shape_and_alters_param(self): candidates, _ = aruco._detectInitialCandidates(self.gray) cand_copy = np.copy(candidates) tmp = MarkerDetectPar._reorder_candidate_corners(candidates) np.testing.assert_allclose(tmp, candidates) self.assertEqual( np.array([np.array_equal(c[1], c[3]) for c in candidates]).sum(), 0) self.assertFalse(np.allclose(cand_copy, candidates)) self.assertFalse(np.allclose(cand_copy, tmp)) self.assertEqual(np.array(candidates).shape, cand_copy.shape)
def test_reorder_candidate_corners_equals_aruco_method(self): candidates, _ = aruco._detectInitialCandidates(self.gray) aruco._reorderCandidatesCorners(candidates) np.testing.assert_array_equal( MarkerDetectPar._reorder_candidate_corners(candidates), aruco._reorderCandidatesCorners(candidates))