From b865387a8bfbe8dac1006d5af955a4267fe5bca2 Mon Sep 17 00:00:00 2001 From: Suleyman TURKMEN Date: Thu, 8 Sep 2022 00:31:12 +0300 Subject: [PATCH 1/3] Update edge_drawing.py --- modules/ximgproc/samples/edge_drawing.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/ximgproc/samples/edge_drawing.py b/modules/ximgproc/samples/edge_drawing.py index 43b33344713..8c8d6add3b7 100644 --- a/modules/ximgproc/samples/edge_drawing.py +++ b/modules/ximgproc/samples/edge_drawing.py @@ -46,6 +46,7 @@ def main(): # Detect edges # you should call this before detectLines() and detectEllipses() ed.detectEdges(gray) + segments = ed.getSegments() lines = ed.detectLines() ellipses = ed.detectEllipses() @@ -67,14 +68,16 @@ def main(): #Draw detected circles and ellipses if ellipses is not None: # Check if circles and ellipses have been found and only then iterate over these and add them to the image - ellipses = np.uint16(np.around(ellipses)) for i in range(len(ellipses)): + center = (int(ellipses[i][0][0]), int(ellipses[i][0][1])) + axes = (int(ellipses[i][0][2])+int(ellipses[i][0][3]),int(ellipses[i][0][2])+int(ellipses[i][0][4])) + angle = ellipses[i][0][5] color = (0, 0, 255) if ellipses[i][0][2] == 0: color = (0, 255, 0) - cv.ellipse(esrc, (ellipses[i][0][0], ellipses[i][0][1]), (ellipses[i][0][2]+ellipses[i][0][3],ellipses[i][0][2]+ellipses[i][0][4]),ellipses[i][0][5],0, 360, color, 2, cv.LINE_AA) + cv.ellipse(esrc, center, axes, angle,0, 360, color, 2, cv.LINE_AA) - cv.imshow("detected ellipses", esrc) + cv.imshow("detected circles and ellipses", esrc) cv.waitKey(0) print('Done') From f9d92f2bb503b57d1fd2ae5f869ea7e660923dea Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 23 Sep 2022 10:37:12 +0200 Subject: [PATCH 2/3] adding python smoke test for MSDDetector --- .../include/opencv2/xfeatures2d.hpp | 2 +- .../misc/python/test/test_descriptors.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 modules/xfeatures2d/misc/python/test/test_descriptors.py diff --git a/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp b/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp index ca958c8b139..12eddbcbe95 100644 --- a/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp +++ b/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp @@ -282,7 +282,7 @@ class CV_EXPORTS_W MSDDetector : public Feature2D { public: - static Ptr create(int m_patch_radius = 3, int m_search_area_radius = 5, + CV_WRAP static Ptr create(int m_patch_radius = 3, int m_search_area_radius = 5, int m_nms_radius = 5, int m_nms_scale_radius = 0, float m_th_saliency = 250.0f, int m_kNN = 4, float m_scale_factor = 1.25f, int m_n_scales = -1, bool m_compute_orientation = false); }; diff --git a/modules/xfeatures2d/misc/python/test/test_descriptors.py b/modules/xfeatures2d/misc/python/test/test_descriptors.py new file mode 100644 index 00000000000..30278c7fab8 --- /dev/null +++ b/modules/xfeatures2d/misc/python/test/test_descriptors.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +# Python 2/3 compatibility +from __future__ import print_function + +import os +import numpy as np +import cv2 as cv + +from tests_common import NewOpenCVTests + +class MSDDetector_test(NewOpenCVTests): + + def test_create(self): + + msd = cv.xfeatures2d.MSDDetector_create() + self.assertFalse(msd is None) + + img1 = np.zeros((100, 100, 3), dtype=np.uint8) + kp1_, des1_ = msd.detectAndCompute(img1, None) + + +if __name__ == '__main__': + NewOpenCVTests.bootstrap() From 6fb484c07df60f381abea772d5813e6a058aa0da Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 23 Sep 2022 11:48:49 +0200 Subject: [PATCH 3/3] adding python smoke test for MSDDetector --- modules/xfeatures2d/misc/python/test/test_descriptors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/xfeatures2d/misc/python/test/test_descriptors.py b/modules/xfeatures2d/misc/python/test/test_descriptors.py index 30278c7fab8..ca8bbcbc026 100644 --- a/modules/xfeatures2d/misc/python/test/test_descriptors.py +++ b/modules/xfeatures2d/misc/python/test/test_descriptors.py @@ -17,7 +17,7 @@ def test_create(self): self.assertFalse(msd is None) img1 = np.zeros((100, 100, 3), dtype=np.uint8) - kp1_, des1_ = msd.detectAndCompute(img1, None) + kp1_ = msd.detect(img1, None) if __name__ == '__main__':