1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-22 03:43:03 +04:00

Merge pull request #27389 from MaximSmolskiy:add_HoughCirclesWithAccumulator_binding

Add HoughCirclesWithAccumulator binding #27389

### Pull Request Readiness Checklist

Fix #27377 

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
Maxim Smolskiy
2025-06-02 10:23:17 +03:00
committed by GitHub
parent a39f61b6e1
commit e92cfb35f6
2 changed files with 49 additions and 0 deletions
+30
View File
@@ -79,6 +79,20 @@ class houghcircles_test(NewOpenCVTests):
self.assertGreater(float(matches_counter) / len(testCircles), .5)
self.assertLess(float(len(circles) - matches_counter) / len(circles), .75)
circles_acc = cv.HoughCirclesWithAccumulator(
image=img,
method=cv.HOUGH_GRADIENT,
dp=1,
minDist=10,
circles=np.array([]),
param1=150,
param2=45,
minRadius=1,
maxRadius=30)
self.assertEqual(circles_acc.shape, (1, 2, 4))
self.assertEqual(circles_acc[0, 0, 3], 66.)
self.assertEqual(circles_acc[0, 1, 3], 62.)
def test_houghcircles_alt(self):
@@ -127,5 +141,21 @@ class houghcircles_test(NewOpenCVTests):
self.assertGreater(float(matches_counter) / len(testCircles), .5)
self.assertLess(float(len(circles) - matches_counter) / len(circles), .75)
circles_acc = cv.HoughCirclesWithAccumulator(
image=img,
method=cv.HOUGH_GRADIENT_ALT,
dp=1,
minDist=10,
circles=np.array([]),
param1=300,
param2=0.9,
minRadius=13,
maxRadius=15)
self.assertEqual(circles_acc.shape, (1, 3, 4))
self.assertEqual(circles_acc[0, 0, 3], 62.)
self.assertEqual(circles_acc[0, 1, 3], 59.)
self.assertEqual(circles_acc[0, 2, 3], 47.)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()