mirror of
https://github.com/opencv/opencv.git
synced 2025-07-25 22:57:53 +08:00
fix bug different marker ordering with findChessboardCornersSBWithMeta and CALIB_CB_LARGER flag
This commit is contained in:
parent
df5da4abcd
commit
9dde7790cf
@ -3720,10 +3720,11 @@ Chessboard::Board Chessboard::detectImpl(const Mat& gray,std::vector<cv::Mat> &f
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iter_boards->normalizeOrientation(false);
|
||||||
|
|
||||||
if(iter_boards->getSize() == parameters.chessboard_size ||
|
if(iter_boards->getSize() == parameters.chessboard_size ||
|
||||||
iter_boards->getSize() == chessboard_size2)
|
iter_boards->getSize() == chessboard_size2)
|
||||||
{
|
{
|
||||||
iter_boards->normalizeOrientation(false);
|
|
||||||
if(iter_boards->getSize() != parameters.chessboard_size)
|
if(iter_boards->getSize() != parameters.chessboard_size)
|
||||||
{
|
{
|
||||||
if(iter_boards->isCellBlack(0,0) == iter_boards->isCellBlack(0,int(iter_boards->colCount())-1))
|
if(iter_boards->isCellBlack(0,0) == iter_boards->isCellBlack(0,int(iter_boards->colCount())-1))
|
||||||
|
@ -849,5 +849,18 @@ TEST(Calib3d_RotatedCirclesPatternDetector, issue_24964)
|
|||||||
EXPECT_LE(error, precise_success_error_level);
|
EXPECT_LE(error, precise_success_error_level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Calib3d_CornerOrdering, issue_26830) {
|
||||||
|
const cv::String dataDir = string(TS::ptr()->get_data_path()) + "cv/cameracalibration/";
|
||||||
|
const cv::Mat image = cv::imread(dataDir + "checkerboard_marker_white.png");
|
||||||
|
|
||||||
|
std::vector<Point2f> cornersMinimumSizeMatchesPatternSize;
|
||||||
|
ASSERT_TRUE(cv::findChessboardCornersSB(image, Size(14, 9), cornersMinimumSizeMatchesPatternSize, CALIB_CB_MARKER | CALIB_CB_LARGER));
|
||||||
|
|
||||||
|
std::vector<Point2f> cornersMinimumSizeSmallerThanPatternSize;
|
||||||
|
ASSERT_TRUE(cv::findChessboardCornersSB(image, Size(4, 4), cornersMinimumSizeSmallerThanPatternSize, CALIB_CB_MARKER | CALIB_CB_LARGER));
|
||||||
|
|
||||||
|
ASSERT_EQ(cornersMinimumSizeMatchesPatternSize, cornersMinimumSizeSmallerThanPatternSize);
|
||||||
|
}
|
||||||
|
|
||||||
}} // namespace
|
}} // namespace
|
||||||
/* End of file. */
|
/* End of file. */
|
||||||
|
Loading…
Reference in New Issue
Block a user