Merge pull request #12147 from D-Alex:master
authorAlexander Duda <Alexander.Duda@me.com>
Thu, 13 Sep 2018 12:43:04 +0000 (14:43 +0200)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Thu, 13 Sep 2018 12:43:04 +0000 (15:43 +0300)
commita024593fa6e600b5f86578094aa9d9d8e5dabf50
treeda794f4aff7f5c6969180bfc6467253890ff8a91
parent87b5737293f285fc644c5f6b7aa488c8bd50157d
Merge pull request #12147 from D-Alex:master

* add new chessboard detector

The chessboar detector is based on the paper.
Accurate Detection and Localization of Checkerboard Corners for
Calibration Alexander Duda, Udo Frese
British Machine Vision Conference, o.A., 2018.

It utilizes point symmetry of checkerboard corners in combination with a
localized Radon transform approximated by box filters to achieve high
performance even on large images. Here, tests have shown that the
ability to localize checkerboard corners is close to the theoretical
limit of 1/100 of a pixel while being considerably less sensitive
to image noise than standard methods.

* chessboard: add reference to bibtex file

* chessboard: add dependency to opencv_flann

* fix: test chesscorners. It is valid to return an empty list

In case no chessboard was detected it should be valid for the detector
to return an empty list.

For simplifcation, it should be allowed to return any number of corners
if they are flagged as not found.

* fix: opencv.bib remove empty lines

* fix: doc findChessboardCorners replace cvSize with cv::Size

* chessboard tests: factor out logic selecting detector

* chessboard: add unit test for findChessboardCorners2

This is includes a new chessboard generator which supports subpix
corners with high accuracy by wrapping an optimal chessboard using
wrapPerspective.

* fix: chessboard unit test - overwrite of default parameter flag of findCirclesGrid

* chessboard: remove trailing whitespace

* chessboard: fix debug drawing

* chessboard: fix some issues during code review

* chessboard: normalize asymmetric chessboard

* chessboard: fix float double warning

* remove trailing whitespace

* chessboards: fix compiler warnings

* chessboards: fix compiler warnings

* checkerboard: some performance improvements

* chessboard: remove NULL macros for language bindinges from internal headers

* chessboard: shorten license terms

* chessboard: remove unused internal method

* chessboard: set helper functions to static

* chessboard: fix normalizePoints1D using unshifted points

* chessboard: remove wrongly copied text

* chessboard: use CV_CheckTypeEQ macro

* chessboard: comment all NaN checks

* chessboard: use consistent color conversion

* chessboard: use CheckChannelEQ macro

* chessboard: assume gray color image for internal methods

* chessboard: use std::swap

* chessboard: use Mat.dataend

* chessboard: fix compiler warnings

* chessboard: replace some checks witch CV_CHECK macro

* chessboard: fix comparison function for partial sort

* chessboard: small cleanup

* chessboard: use short license header

* chessboard: rename findChessboard2 to findChessboardSB

* chessboard: fix type in unit test
doc/opencv.bib
modules/calib3d/CMakeLists.txt
modules/calib3d/doc/pics/checkerboard_radon.png [new file with mode: 0644]
modules/calib3d/include/opencv2/calib3d.hpp
modules/calib3d/src/chessboard.cpp [new file with mode: 0644]
modules/calib3d/src/chessboard.hpp [new file with mode: 0644]
modules/calib3d/test/test_chesscorners.cpp