• Tom Becker's avatar
    Merge pull request #10232 from TomBecker-BD:hough-many-circles · 592f8d8c
    Tom Becker authored
    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)
    592f8d8c
Name
Last commit
Last update
..
opencv2 Loading commit data...