Commit 27f6d4e7 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #1190 from catree:fix_aruco_doCornerRefinement

parents 2abf45d1 dc8e29a0
...@@ -12,7 +12,7 @@ minCornerDistance: 10.0 ...@@ -12,7 +12,7 @@ minCornerDistance: 10.0
minDistanceToBorder: 3 minDistanceToBorder: 3
minMarkerDistance: 10.0 minMarkerDistance: 10.0
minMarkerDistanceRate: 0.05 minMarkerDistanceRate: 0.05
doCornerRefinement: false cornerRefinementMethod: 0
cornerRefinementWinSize: 5 cornerRefinementWinSize: 5
cornerRefinementMaxIterations: 30 cornerRefinementMaxIterations: 30
cornerRefinementMinAccuracy: 0.1 cornerRefinementMinAccuracy: 0.1
......
...@@ -702,23 +702,23 @@ Default value: 0.6 ...@@ -702,23 +702,23 @@ Default value: 0.6
#### Corner Refinement #### Corner Refinement
After markers have been detected and identified, the last step is performing subpixel refinement After markers have been detected and identified, the last step is performing subpixel refinement
in the corner positions (see OpenCV ```cornerSubPix()```) in the corner positions (see OpenCV ```cornerSubPix()``` and ```cv::aruco::CornerRefineMethod```)
Note that this step is optional and it only makes sense if the position of the marker corners have to Note that this step is optional and it only makes sense if the position of the marker corners have to
be accurate, for instance for pose estimation. It is usually a time consuming step and it is disabled by default. be accurate, for instance for pose estimation. It is usually a time consuming step and it is disabled by default.
- ```bool doCornerRefinement``` - ```int cornerRefinementMethod```
This parameter determines if the corner subpixel process is performed or not. It can be disabled This parameter determines if the corner subpixel process is performed or not. It can be disabled
if accurate corners are not necessary. if accurate corners are not necessary.
Default value: false. Default value: ```CORNER_REFINE_NONE```.
- ```int cornerRefinementWinSize``` - ```int cornerRefinementWinSize```
This parameter determines the window size of the subpixel refinement process. This parameter determines the window size of the subpixel refinement process.
High values can produce that close image corners are included in the window region, so that the High values can produce the effect that close image corners are included in the window region, so that the
marker corner moves to a different and wrong location during the process. Furthermore marker corner moves to a different and wrong location during the process. Furthermore
it can affect to performance. it can affect to performance.
......
...@@ -142,7 +142,7 @@ are optional. A similar example without these parameters would be: ...@@ -142,7 +142,7 @@ are optional. A similar example without these parameters would be:
std::vector<int> markerIds; std::vector<int> markerIds;
std::vector<std::vector<cv::Point2f>> markerCorners; std::vector<std::vector<cv::Point2f>> markerCorners;
cv::Ptr<cv::aruco::DetectorParameters> params; cv::Ptr<cv::aruco::DetectorParameters> params;
params->doCornerRefinement = false; params->cornerRefinementMethod = cv::aruco::CORNER_REFINE_NONE;
cv::aruco::detectMarkers(inputImage, board.dictionary, markerCorners, markerIds, params); cv::aruco::detectMarkers(inputImage, board.dictionary, markerCorners, markerIds, params);
// if at least one marker detected // if at least one marker detected
...@@ -207,7 +207,7 @@ Finally, this is a full example of ChArUco detection (without using calibration ...@@ -207,7 +207,7 @@ Finally, this is a full example of ChArUco detection (without using calibration
cv::Ptr<cv::aruco::CharucoBoard> board = cv::aruco::CharucoBoard::create(5, 7, 0.04, 0.02, dictionary); cv::Ptr<cv::aruco::CharucoBoard> board = cv::aruco::CharucoBoard::create(5, 7, 0.04, 0.02, dictionary);
cv::Ptr<cv::aruco::DetectorParameters> params; cv::Ptr<cv::aruco::DetectorParameters> params;
params->doCornerRefinement = false; params->cornerRefinementMethod = cv::aruco::CORNER_REFINE_NONE;
while (inputVideo.grab()) { while (inputVideo.grab()) {
cv::Mat image, imageCopy; cv::Mat image, imageCopy;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment