mirror of
https://github.com/opencv/opencv.git
synced 2024-12-14 17:29:17 +08:00
592f8d8c1b
Hough many circles (#10232) * Add Hui's optimization. Merge with latest changes in OpenCV. * Use conditional compilation instead of a runtime flag. * Whitespace. * Create the sequence for the nonzero edge pixels only if using that approach. * Improve performance for finding very large numbers of circles * Return the circles with the larger accumulator values first, as per API documentation. Use a separate step to check distance between circles. Allows circles to be sorted by strength first. Avoids locking in EstimateRadius which was slowing it down. Return centers only if maxRadius == 0 as per API documentation. * Sort the circles so results are deterministic. Otherwise the order of circles with the same strength depends on parallel processing completion order. * Add test for HoughCircles. * Add beads test. * Wrap the non-zero points structure in a common interface so the code can use either a vector or a matrix. * Remove the special case for skipping the radius search if maxRadius==0. * Add performance tests. * Use NULL instead of nullptr. OpenCV should compile with C++98 compiler. * Put test suite name first. Use different test suite names for each test to avoid an error from the test runner. * Address build bot errors and warnings. * Skip radius search if maxRadius < 0. * Dynamically switch to NZPointList when it will be faster than NZPointSet. * Fix compile error: missing 'typename' prior to dependent type name. * Fix compile error: missing 'typename' prior to dependent type name. This time fix it the non C++ 11 way. * Fix compile error: no type named 'const_reference' in 'class cv::NZPointList' * Disable ManySmallCircles tests. Failing on Mac. * Change beads image to JPEG for smaller file size. Try enabling the ManySmallCircles tests again. * Remove ManySmallCircles tests. They are failing on the Mac build. * Fix expectations to check all circles. * Changing case on a case-insensitive file system Step 1: remove the old file names * Changing case on a case-insensitive file system Step 2: add them back with the new names * Fix cmpAccum function to be strictly weak ordered. * Add tests for many small circles. * imgproc(perf): fix HoughCircles tests * imgproc(houghCircles): refactor code - simplify NZPointList - drop broken (de-synchronization of 'current'/'mi' fields) NZPointSet iterator - NZPointSet iterator is replaced to direct area scan - use SIMD intrinsics - avoid std exceptions (build for embedded systems) |
||
---|---|---|
.. | ||
ocl | ||
test_approxpoly.cpp | ||
test_bilateral_filter.cpp | ||
test_boundingrect.cpp | ||
test_canny.cpp | ||
test_color.cpp | ||
test_connectedcomponents.cpp | ||
test_contours.cpp | ||
test_convhull.cpp | ||
test_cvtyuv.cpp | ||
test_distancetransform.cpp | ||
test_drawing.cpp | ||
test_emd.cpp | ||
test_filter.cpp | ||
test_fitellipse_ams.cpp | ||
test_fitellipse_direct.cpp | ||
test_fitellipse.cpp | ||
test_floodfill.cpp | ||
test_goodfeaturetotrack.cpp | ||
test_grabcut.cpp | ||
test_histograms.cpp | ||
test_houghcircles.cpp | ||
test_houghlines.cpp | ||
test_imgproc_umat.cpp | ||
test_imgwarp_strict.cpp | ||
test_imgwarp.cpp | ||
test_intersection.cpp | ||
test_lsd.cpp | ||
test_main.cpp | ||
test_moments.cpp | ||
test_pc.cpp | ||
test_precomp.hpp | ||
test_resize_bitexact.cpp | ||
test_templmatch.cpp | ||
test_thresh.cpp | ||
test_watershed.cpp |