1#[cfg(feature = "ml-refiner")]
4use crate::multiscale::find_chess_corners_with_ml;
5use crate::multiscale::{find_chess_corners, find_chess_corners_with_refiner};
6use crate::{ChessConfig, CornerDescriptor, RefinerKind};
7use chess_corners_core::ImageView;
8use image::GrayImage;
9
10#[must_use]
17pub fn find_chess_corners_image(img: &GrayImage, cfg: &ChessConfig) -> Vec<CornerDescriptor> {
18 let view = ImageView::from_u8_slice(img.width() as usize, img.height() as usize, img.as_raw())
19 .expect("valid view");
20 find_chess_corners(view, cfg)
21}
22
23#[must_use]
25pub fn find_chess_corners_image_with_refiner(
26 img: &GrayImage,
27 cfg: &ChessConfig,
28 refiner: &RefinerKind,
29) -> Vec<CornerDescriptor> {
30 let view = ImageView::from_u8_slice(img.width() as usize, img.height() as usize, img.as_raw())
31 .expect("valid view");
32 find_chess_corners_with_refiner(view, cfg, refiner)
33}
34
35#[must_use]
37#[cfg(feature = "ml-refiner")]
38pub fn find_chess_corners_image_with_ml(
39 img: &GrayImage,
40 cfg: &ChessConfig,
41) -> Vec<CornerDescriptor> {
42 let view = ImageView::from_u8_slice(img.width() as usize, img.height() as usize, img.as_raw())
43 .expect("valid view");
44 find_chess_corners_with_ml(view, cfg)
45}