public class CharucoDetector extends Algorithm
Modifier | Constructor and Description |
---|---|
|
CharucoDetector(CharucoBoard board)
Basic CharucoDetector constructor
|
|
CharucoDetector(CharucoBoard board,
CharucoParameters charucoParams)
Basic CharucoDetector constructor
|
|
CharucoDetector(CharucoBoard board,
CharucoParameters charucoParams,
DetectorParameters detectorParams)
Basic CharucoDetector constructor
|
|
CharucoDetector(CharucoBoard board,
CharucoParameters charucoParams,
DetectorParameters detectorParams,
RefineParameters refineParams)
Basic CharucoDetector constructor
|
protected |
CharucoDetector(long addr) |
Modifier and Type | Method and Description |
---|---|
static CharucoDetector |
__fromPtr__(long addr) |
void |
detectBoard(Mat image,
Mat charucoCorners,
Mat charucoIds)
detect aruco markers and interpolate position of ChArUco board corners
|
void |
detectBoard(Mat image,
Mat charucoCorners,
Mat charucoIds,
List<Mat> markerCorners)
detect aruco markers and interpolate position of ChArUco board corners
|
void |
detectBoard(Mat image,
Mat charucoCorners,
Mat charucoIds,
List<Mat> markerCorners,
Mat markerIds)
detect aruco markers and interpolate position of ChArUco board corners
|
void |
detectDiamonds(Mat image,
List<Mat> diamondCorners,
Mat diamondIds)
Detect ChArUco Diamond markers
|
void |
detectDiamonds(Mat image,
List<Mat> diamondCorners,
Mat diamondIds,
List<Mat> markerCorners)
Detect ChArUco Diamond markers
|
void |
detectDiamonds(Mat image,
List<Mat> diamondCorners,
Mat diamondIds,
List<Mat> markerCorners,
Mat markerIds)
Detect ChArUco Diamond markers
|
protected void |
finalize() |
CharucoBoard |
getBoard() |
CharucoParameters |
getCharucoParameters() |
DetectorParameters |
getDetectorParameters() |
RefineParameters |
getRefineParameters() |
void |
setBoard(CharucoBoard board) |
void |
setCharucoParameters(CharucoParameters charucoParameters) |
void |
setDetectorParameters(DetectorParameters detectorParameters) |
void |
setRefineParameters(RefineParameters refineParameters) |
clear, empty, getDefaultName, getNativeObjAddr, save
protected CharucoDetector(long addr)
public CharucoDetector(CharucoBoard board, CharucoParameters charucoParams, DetectorParameters detectorParams, RefineParameters refineParams)
board
- ChAruco boardcharucoParams
- charuco detection parametersdetectorParams
- marker detection parametersrefineParams
- marker refine detection parameterspublic CharucoDetector(CharucoBoard board, CharucoParameters charucoParams, DetectorParameters detectorParams)
board
- ChAruco boardcharucoParams
- charuco detection parametersdetectorParams
- marker detection parameterspublic CharucoDetector(CharucoBoard board, CharucoParameters charucoParams)
board
- ChAruco boardcharucoParams
- charuco detection parameterspublic CharucoDetector(CharucoBoard board)
board
- ChAruco boardpublic static CharucoDetector __fromPtr__(long addr)
public CharucoBoard getBoard()
public void setBoard(CharucoBoard board)
public CharucoParameters getCharucoParameters()
public void setCharucoParameters(CharucoParameters charucoParameters)
public DetectorParameters getDetectorParameters()
public void setDetectorParameters(DetectorParameters detectorParameters)
public RefineParameters getRefineParameters()
public void setRefineParameters(RefineParameters refineParameters)
public void detectBoard(Mat image, Mat charucoCorners, Mat charucoIds, List<Mat> markerCorners, Mat markerIds)
image
- input image necesary for corner refinement. Note that markers are not detected and
should be sent in corners and ids parameters.charucoCorners
- interpolated chessboard corners.charucoIds
- interpolated chessboard corners identifiers.markerCorners
- vector of already detected markers corners. For each marker, its four
corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). 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.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: findChessboardCornerspublic void detectBoard(Mat image, Mat charucoCorners, Mat charucoIds, List<Mat> markerCorners)
image
- input image necesary for corner refinement. Note that markers are not detected and
should be sent in corners and ids parameters.charucoCorners
- interpolated chessboard corners.charucoIds
- interpolated chessboard corners identifiers.markerCorners
- vector of already detected markers corners. For each marker, its four
corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). 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.
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: findChessboardCornerspublic void detectBoard(Mat image, Mat charucoCorners, Mat charucoIds)
image
- input image necesary for corner refinement. Note that markers are not detected and
should be sent in corners and ids parameters.charucoCorners
- interpolated chessboard corners.charucoIds
- interpolated chessboard corners identifiers.
corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). 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.
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: findChessboardCornerspublic void detectDiamonds(Mat image, List<Mat> diamondCorners, Mat diamondIds, List<Mat> markerCorners, Mat markerIds)
image
- input image necessary for corner subpixel.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<std::vector<cv::Point2f> > ).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.markerCorners
- list of detected marker corners from detectMarkers function.
If markerCorners and markerCorners are empty, the function detect aruco markers and ids.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 void detectDiamonds(Mat image, List<Mat> diamondCorners, Mat diamondIds, List<Mat> markerCorners)
image
- input image necessary for corner subpixel.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<std::vector<cv::Point2f> > ).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.markerCorners
- list of detected marker corners from detectMarkers function.
If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
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 void detectDiamonds(Mat image, List<Mat> diamondCorners, Mat diamondIds)
image
- input image necessary for corner subpixel.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<std::vector<cv::Point2f> > ).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.
If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
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.Copyright © 2024. All rights reserved.