All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bytedeco.opencv.opencv_objdetect.CharucoDetector Maven / Gradle / Ivy

// Targeted by JavaCPP version 1.5.11: DO NOT EDIT THIS FILE

package org.bytedeco.opencv.opencv_objdetect;

import java.nio.*;
import org.bytedeco.javacpp.*;
import org.bytedeco.javacpp.annotation.*;

import static org.bytedeco.javacpp.presets.javacpp.*;
import static org.bytedeco.openblas.global.openblas_nolapack.*;
import static org.bytedeco.openblas.global.openblas.*;
import org.bytedeco.opencv.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_core.*;
import org.bytedeco.opencv.opencv_imgproc.*;
import static org.bytedeco.opencv.global.opencv_imgproc.*;
import static org.bytedeco.opencv.global.opencv_imgcodecs.*;
import org.bytedeco.opencv.opencv_videoio.*;
import static org.bytedeco.opencv.global.opencv_videoio.*;
import org.bytedeco.opencv.opencv_highgui.*;
import static org.bytedeco.opencv.global.opencv_highgui.*;
import org.bytedeco.opencv.opencv_flann.*;
import static org.bytedeco.opencv.global.opencv_flann.*;
import org.bytedeco.opencv.opencv_features2d.*;
import static org.bytedeco.opencv.global.opencv_features2d.*;
import org.bytedeco.opencv.opencv_calib3d.*;
import static org.bytedeco.opencv.global.opencv_calib3d.*;
import org.bytedeco.opencv.opencv_dnn.*;
import static org.bytedeco.opencv.global.opencv_dnn.*;

import static org.bytedeco.opencv.global.opencv_objdetect.*;


@Namespace("cv::aruco") @NoOffset @Properties(inherit = org.bytedeco.opencv.presets.opencv_objdetect.class)
public class CharucoDetector extends Algorithm {
    static { Loader.load(); }
    /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
    public CharucoDetector(Pointer p) { super(p); }
    /** Downcast constructor. */
    public CharucoDetector(Algorithm pointer) { super((Pointer)null); allocate(pointer); }
    @Namespace private native @Name("static_cast") void allocate(Algorithm pointer);
    @Override public Algorithm asAlgorithm() { return asAlgorithm(this); }
    @Namespace public static native @Name("static_cast") Algorithm asAlgorithm(CharucoDetector pointer);

    /** \brief Basic CharucoDetector constructor
     *
     * @param board ChAruco board
     * @param charucoParams charuco detection parameters
     * @param detectorParams marker detection parameters
     * @param refineParams marker refine detection parameters
     */
    public CharucoDetector(@Const @ByRef CharucoBoard board,
                                @Const @ByRef(nullValue = "cv::aruco::CharucoParameters()") CharucoParameters charucoParams,
                                @Const @ByRef(nullValue = "cv::aruco::DetectorParameters()") DetectorParameters detectorParams,
                                @Const @ByRef(nullValue = "cv::aruco::RefineParameters()") RefineParameters refineParams) { super((Pointer)null); allocate(board, charucoParams, detectorParams, refineParams); }
    private native void allocate(@Const @ByRef CharucoBoard board,
                                @Const @ByRef(nullValue = "cv::aruco::CharucoParameters()") CharucoParameters charucoParams,
                                @Const @ByRef(nullValue = "cv::aruco::DetectorParameters()") DetectorParameters detectorParams,
                                @Const @ByRef(nullValue = "cv::aruco::RefineParameters()") RefineParameters refineParams);
    public CharucoDetector(@Const @ByRef CharucoBoard board) { super((Pointer)null); allocate(board); }
    private native void allocate(@Const @ByRef CharucoBoard board);

    public native @Const @ByRef CharucoBoard getBoard();
    public native void setBoard(@Const @ByRef CharucoBoard board);

    public native @Const @ByRef CharucoParameters getCharucoParameters();
    public native void setCharucoParameters(@ByRef CharucoParameters charucoParameters);

    public native @Const @ByRef DetectorParameters getDetectorParameters();
    public native void setDetectorParameters(@Const @ByRef DetectorParameters detectorParameters);

    public native @Const @ByRef RefineParameters getRefineParameters();
    public native void setRefineParameters(@Const @ByRef RefineParameters refineParameters);

    /**
     * \brief detect aruco markers and interpolate position of ChArUco board corners
     * @param image input image necesary for corner refinement. Note that markers are not detected and
     * should be sent in corners and ids parameters.
     * @param charucoCorners interpolated chessboard corners.
     * @param charucoIds interpolated chessboard corners identifiers.
     * @param markerCorners vector of already detected markers corners. For each marker, its four
     * corners are provided, (e.g std::vector > ). For N detected markers, the
     * dimensions of this array should be Nx4. The order of the corners should be clockwise.
     * If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
     * @param markerIds list of identifiers for each marker in corners.
     *  If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
     *
     * This function receives the detected markers and returns the 2D position of the chessboard corners
     * from a ChArUco board using the detected Aruco markers.
     *
     * If markerCorners and markerCorners are empty, the detectMarkers() will run and detect aruco markers and ids.
     *
     * If camera parameters are provided, the process is based in an approximated pose estimation, else it is based on local homography.
     * Only visible corners are returned. For each corner, its corresponding identifier is also returned in charucoIds.
     * @see findChessboardCorners
     * \note After OpenCV 4.6.0, there was an incompatible change in the ChArUco pattern generation algorithm for even row counts.
     * Use cv::aruco::CharucoBoard::setLegacyPattern() to ensure compatibility with patterns created using OpenCV versions prior to 4.6.0.
     * For more information, see the issue: https://github.com/opencv/opencv/issues/23152
     */
    public native void detectBoard(@ByVal Mat image, @ByVal Mat charucoCorners, @ByVal Mat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectBoard(@ByVal Mat image, @ByVal Mat charucoCorners, @ByVal Mat charucoIds);
    public native void detectBoard(@ByVal Mat image, @ByVal Mat charucoCorners, @ByVal Mat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectBoard(@ByVal Mat image, @ByVal Mat charucoCorners, @ByVal Mat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectBoard(@ByVal UMat image, @ByVal UMat charucoCorners, @ByVal UMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectBoard(@ByVal UMat image, @ByVal UMat charucoCorners, @ByVal UMat charucoIds);
    public native void detectBoard(@ByVal UMat image, @ByVal UMat charucoCorners, @ByVal UMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectBoard(@ByVal UMat image, @ByVal UMat charucoCorners, @ByVal UMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectBoard(@ByVal GpuMat image, @ByVal GpuMat charucoCorners, @ByVal GpuMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);
    public native void detectBoard(@ByVal GpuMat image, @ByVal GpuMat charucoCorners, @ByVal GpuMat charucoIds);
    public native void detectBoard(@ByVal GpuMat image, @ByVal GpuMat charucoCorners, @ByVal GpuMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);
    public native void detectBoard(@ByVal GpuMat image, @ByVal GpuMat charucoCorners, @ByVal GpuMat charucoIds,
                                 @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                 @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);

    /**
     * \brief Detect ChArUco Diamond markers
     *
     * @param image input image necessary for corner subpixel.
     * @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order
     * is the same than in marker corners: top left, top right, bottom right and bottom left. Similar
     * format than the corners returned by detectMarkers (e.g std::vector > ).
     * @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of
     * type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the
     * diamond.
     * @param markerCorners list of detected marker corners from detectMarkers function.
     * If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
     * @param markerIds list of marker ids in markerCorners.
     * If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
     *
     * This function detects Diamond markers from the previous detected ArUco markers. The diamonds
     * are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters
     * are provided, the diamond search is based on reprojection. If not, diamond search is based on
     * homography. Homography is faster than reprojection, but less accurate.
     */
    public native void detectDiamonds(@ByVal Mat image, @ByVal MatVector diamondCorners, @ByVal Mat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectDiamonds(@ByVal Mat image, @ByVal MatVector diamondCorners, @ByVal Mat diamondIds);
    public native void detectDiamonds(@ByVal Mat image, @ByVal UMatVector diamondCorners, @ByVal Mat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectDiamonds(@ByVal Mat image, @ByVal UMatVector diamondCorners, @ByVal Mat diamondIds);
    public native void detectDiamonds(@ByVal Mat image, @ByVal GpuMatVector diamondCorners, @ByVal Mat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") Mat markerIds);
    public native void detectDiamonds(@ByVal Mat image, @ByVal GpuMatVector diamondCorners, @ByVal Mat diamondIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal MatVector diamondCorners, @ByVal UMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal MatVector diamondCorners, @ByVal UMat diamondIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal UMatVector diamondCorners, @ByVal UMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal UMatVector diamondCorners, @ByVal UMat diamondIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal GpuMatVector diamondCorners, @ByVal UMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") UMat markerIds);
    public native void detectDiamonds(@ByVal UMat image, @ByVal GpuMatVector diamondCorners, @ByVal UMat diamondIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal MatVector diamondCorners, @ByVal GpuMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") MatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal MatVector diamondCorners, @ByVal GpuMat diamondIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal UMatVector diamondCorners, @ByVal GpuMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") UMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal UMatVector diamondCorners, @ByVal GpuMat diamondIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal GpuMatVector diamondCorners, @ByVal GpuMat diamondIds,
                                    @ByVal(nullValue = "cv::InputOutputArrayOfArrays(cv::noArray())") GpuMatVector markerCorners,
                                    @ByVal(nullValue = "cv::InputOutputArray(cv::noArray())") GpuMat markerIds);
    public native void detectDiamonds(@ByVal GpuMat image, @ByVal GpuMatVector diamondCorners, @ByVal GpuMat diamondIds);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy