opencv 0.46.2

Rust bindings for OpenCV
Documentation
#![cfg(feature = "contrib")]

use opencv::{aruco::DetectorParameters, prelude::*, Result};

#[test]
fn aruco_detector_parameters() -> Result<()> {
    let mut ptr = DetectorParameters::create()?;
    let mut plain = DetectorParameters::default()?;

    assert_eq!(plain.adaptive_thresh_win_size_min(), ptr.adaptive_thresh_win_size_min());
    ptr.set_adaptive_thresh_win_size_min(4);
    assert_eq!(ptr.adaptive_thresh_win_size_min(), 4);

    assert_eq!(plain.adaptive_thresh_win_size_max(), ptr.adaptive_thresh_win_size_max());
    ptr.set_adaptive_thresh_win_size_max(24);
    assert_eq!(ptr.adaptive_thresh_win_size_max(), 24);

    assert_eq!(plain.adaptive_thresh_win_size_step(), ptr.adaptive_thresh_win_size_step());
    ptr.set_adaptive_thresh_win_size_step(11);
    assert_eq!(ptr.adaptive_thresh_win_size_step(), 11);

    assert_eq!(plain.adaptive_thresh_constant(), ptr.adaptive_thresh_constant());
    ptr.set_adaptive_thresh_constant(8.0);
    assert_eq!(ptr.adaptive_thresh_constant(), 8.0);

    assert_eq!(plain.min_marker_perimeter_rate(), ptr.min_marker_perimeter_rate());
    ptr.set_min_marker_perimeter_rate(1.0);
    assert_eq!(ptr.min_marker_perimeter_rate(), 1.0);

    assert_eq!(plain.max_marker_perimeter_rate(), ptr.max_marker_perimeter_rate());
    ptr.set_max_marker_perimeter_rate(5.0);
    assert_eq!(ptr.max_marker_perimeter_rate(), 5.0);

    assert_eq!(plain.min_corner_distance_rate(), ptr.min_corner_distance_rate());
    ptr.set_min_corner_distance_rate(1.0);
    assert_eq!(ptr.min_corner_distance_rate(), 1.0);

    assert_eq!(plain.min_distance_to_border(), ptr.min_distance_to_border());
    ptr.set_min_distance_to_border(4);
    assert_eq!(ptr.min_distance_to_border(), 4);

    assert_eq!(plain.min_marker_distance_rate(), ptr.min_marker_distance_rate());
    ptr.set_min_marker_distance_rate(1.0);
    assert_eq!(ptr.min_marker_distance_rate(), 1.0);

    assert_eq!(plain.corner_refinement_win_size(), ptr.corner_refinement_win_size());
    ptr.set_corner_refinement_win_size(6);
    assert_eq!(ptr.corner_refinement_win_size(), 6);

    assert_eq!(plain.corner_refinement_max_iterations(), ptr.corner_refinement_max_iterations());
    ptr.set_corner_refinement_max_iterations(31);
    assert_eq!(ptr.corner_refinement_max_iterations(), 31);

    assert_eq!(plain.corner_refinement_min_accuracy(), ptr.corner_refinement_min_accuracy());
    ptr.set_corner_refinement_min_accuracy(1.0);
    assert_eq!(ptr.corner_refinement_min_accuracy(), 1.0);

    assert_eq!(plain.marker_border_bits(), ptr.marker_border_bits());
    ptr.set_marker_border_bits(2);
    assert_eq!(ptr.marker_border_bits(), 2);

    assert_eq!(plain.perspective_remove_ignored_margin_per_cell(), ptr.perspective_remove_ignored_margin_per_cell());
    ptr.set_perspective_remove_ignored_margin_per_cell(1.0);
    assert_eq!(ptr.perspective_remove_ignored_margin_per_cell(), 1.0);

    assert_eq!(plain.max_erroneous_bits_in_border_rate(), ptr.max_erroneous_bits_in_border_rate());
    ptr.set_max_erroneous_bits_in_border_rate(1.0);
    assert_eq!(ptr.max_erroneous_bits_in_border_rate(), 1.0);

    assert_eq!(plain.min_otsu_std_dev(), ptr.min_otsu_std_dev());
    ptr.set_min_otsu_std_dev(6.0);
    assert_eq!(ptr.min_otsu_std_dev(), 6.0);

    assert_eq!(plain.error_correction_rate(), ptr.error_correction_rate());
    ptr.set_error_correction_rate(1.0);
    assert_eq!(ptr.error_correction_rate(), 1.0);

    assert_eq!(plain.perspective_remove_pixel_per_cell(), ptr.perspective_remove_pixel_per_cell());
    ptr.set_perspective_remove_pixel_per_cell(5);
    assert_eq!(ptr.perspective_remove_pixel_per_cell(), 5);

    plain.set_adaptive_thresh_constant(123.);
    assert_eq!(123., plain.adaptive_thresh_constant());
    plain.set_adaptive_thresh_constant(87.);
    assert_eq!(87., plain.adaptive_thresh_constant());

    Ok(())
}