{"id":6726,"date":"2019-04-18T15:00:12","date_gmt":"2019-04-18T06:00:12","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=6726"},"modified":"2020-05-28T12:21:36","modified_gmt":"2020-05-28T03:21:36","slug":"python%ea%b3%bc-opencv-26-%ec%9d%b4%eb%af%b8%ec%a7%80%ec%97%90%ec%84%9c-%ec%9b%90%ed%98%95-%eb%8f%84%ed%98%95-%ea%b2%80%ec%b6%9chough-circle-transform","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=6726","title":{"rendered":"Python\uacfc OpenCV \u2013 27 : \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc6d0\ud615 \ub3c4\ud615 \uac80\ucd9c(Hough Circle Transform)"},"content":{"rendered":"<p>\uc774 \uae00\uc758 \uc6d0\ubb38\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_houghcircles\/py_houghcircles.html#hough-circles \uc785\ub2c8\ub2e4.<\/p>\n<p>\uc55e\uc11c \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc120\ud615 \ub3c4\ud615\uc744 \uac80\ucd9c\ud558\ub294\ub370, Hough Transform \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc54c\uace0\ub9ac\uc998\uc740 \uc218\ud559\uc801 \ubaa8\ub378\ub9c1\uc774 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \ub3c4\ud615\uc744 \uc774\ubbf8\uc9c0\uc5d0\uc11c \uac80\ucd9c\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc6d0\ud615\uc5d0 \ub300\ud55c \uc218\ud559\uc801 \ubaa8\ub378\uc2dd\uc744 \uc774\uc6a9\ud574 Hought Transform\uc744 \uc801\uc6a9\ud560 \uc218 \uc788\ub294\ub370, \ubb38\uc81c\ub294 \uc6d0\uc5d0 \ub300\ud55c \uc218\ud559\uc2dd\uc774 \uc911\uc2ec\uc810 (x, y)\uc640 \ubc18\uc9c0\ub984(r)\uc774\ub77c\ub294 3\uac1c\uc758 \ub9e4\uac1c\ubcc0\uc218\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uace0, \uacb0\uad6d 3\ucc28\uc6d0 \ubc30\uc5f4\uc774\ub77c\ub294 \uc800\uc7a5\uc18c\ub97c \uc694\uad6c\ud55c\ub2e4\ub294 \uc810. \uadf8\ub7fc\uc73c\ub85c \uc778\ud574 \uc5f0\uc0b0\uc774 \ub9e4\uc6b0 \ube44\ud6a8\uc728\uc801\uc774\ub77c\ub294 \uc810\uc785\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud55c \uac1c\uc120\uc73c\ub85c Gradient(\uac00\uc7a5\uc790\ub9ac\uc5d0\uc11c\uc758 \uae30\uc6b8\uae30\uac12)\uc744 \uc774\uc6a9\ud558\uc5ec Hought Transform\uc744 \uc801\uc6a9\ud560 \uc218 \uc788\uace0, \uc774\uc5d0 \ub300\ud55c \uad6c\ud604\uc73c\ub85c OpenCV\uc5d0\uc11c\ub294 cv2.HoughCircles \ud568\uc218\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774 \ud568\uc218\uc758 \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport cv2\r\nimport numpy as np\r\n\r\nimg = cv2.imread('.\/data\/opencv_logo.png',0)\r\nimg = cv2.medianBlur(img,5)\r\ncimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)\r\n\r\ncircles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,\r\n                            param1=50,param2=30,minRadius=0,maxRadius=0)\r\n\r\ncircles = np.uint16(np.around(circles))\r\nfor i in circles[0,:]:\r\n    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)\r\n\r\ncv2.imshow('detected circles',cimg)\r\ncv2.waitKey(0)\r\ncv2.destroyAllWindows()\r\n<\/pre>\n<p>cv2.HoughCircles\ub294 \uc81c\ubc95 \ub9ce\uc740 \uc778\uc790\ub97c \ubc1b\ub294\ub370\uc694. \uc704\uc758 \uc608\uc81c\ub97c \ud1b5\ud574 \ubcf4\uba74, \uccab\ubc88\uc9f8\ub294 \uc785\ub825 \uc774\ubbf8\uc9c0\ub85c\uc368 8\ube44\ud2b8 \ub2e8\uc77c \ucc44\ub110\uc778 Grayscale \uc774\ubbf8\uc9c0, \ub450\ubc88\uc9f8\ub294 \ubc29\uc2dd\uc73c\ub85c\uc368 \ud604\uc7ac\ub294 cv2.HOUGH_GRADIENT\ub9cc\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc138\ubc88\uc9f8\ub294 \ub300\ubd80\ubd84 1\uc744 \uc9c0\uc815\ud558\ub294\ub370, \uc774 \uacbd\uc6b0 \uc785\ub825 \uc774\ubbf8\uc9c0\uc640 \ub3d9\uc77c\ud55c \ud574\uc0c1\ub3c4\uac00 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \ub124\ubc88\uc9f8\ub294 \uac80\ucd9c\ud55c \uc6d0\uc758 \uc911\uc2ec\uacfc\uc758 \ucd5c\uc18c\uac70\ub9ac\uac12\uc73c\ub85c \uc774 \ucd5c\uc18c\uac12\ubcf4\ub2e4 \uc791\uc73c\uba74 \uc6d0\uc73c\ub85c \ud310\ubcc4\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 param1\uc740 Canny Edge\uc5d0 \uc804\ub2ec\ub418\ub294 \uc778\uc790\uac12, param2\ub294 \uac80\ucd9c \uacb0\uacfc\ub97c \ubcf4\uba74\uc11c \uc801\ub2f9\uc774 \uc870\uc815\ud574\uc57c \ud558\ub294 \uac12\uc73c\ub85c \uc791\uc73c\uba74 \uc624\ub958\uac00 \ub192\uace0 \ud06c\uba74 \uac80\ucd9c\ub960\uc774 \ub0ae\uc544\uc9c4\ub2e4\uace0 \ud569\ub2c8\ub2e4. minRadius\uc640 masRadius\ub294 \uac01\uac01 \uc6d0\uc758 \ucd5c\uc18c, \ucd5c\ub300 \ubc18\uc9c0\ub984\uc774\uace0 0\uc73c\ub85c \uc9c0\uc815\ud558\uba74 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/04\/hough_circle_transform_2.png\" alt=\"\" width=\"344\" height=\"490\" class=\"aligncenter size-full wp-image-6727\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \uae00\uc758 \uc6d0\ubb38\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_houghcircles\/py_houghcircles.html#hough-circles \uc785\ub2c8\ub2e4. \uc55e\uc11c \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc120\ud615 \ub3c4\ud615\uc744 \uac80\ucd9c\ud558\ub294\ub370, Hough Transform \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc54c\uace0\ub9ac\uc998\uc740 \uc218\ud559\uc801 \ubaa8\ub378\ub9c1\uc774 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \ub3c4\ud615\uc744 \uc774\ubbf8\uc9c0\uc5d0\uc11c \uac80\ucd9c\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc6d0\ud615\uc5d0 \ub300\ud55c \uc218\ud559\uc801 \ubaa8\ub378\uc2dd\uc744 \uc774\uc6a9\ud574 Hought Transform\uc744 \uc801\uc6a9\ud560 \uc218 \uc788\ub294\ub370, \ubb38\uc81c\ub294 \uc6d0\uc5d0 \ub300\ud55c \uc218\ud559\uc2dd\uc774 \uc911\uc2ec\uc810 (x, y)\uc640 \ubc18\uc9c0\ub984(r)\uc774\ub77c\ub294 3\uac1c\uc758 \ub9e4\uac1c\ubcc0\uc218\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uace0, \uacb0\uad6d 3\ucc28\uc6d0 \ubc30\uc5f4\uc774\ub77c\ub294 \uc800\uc7a5\uc18c\ub97c \uc694\uad6c\ud55c\ub2e4\ub294 \uc810. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=6726\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Python\uacfc OpenCV \u2013 27 : \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc6d0\ud615 \ub3c4\ud615 \uac80\ucd9c(Hough Circle Transform)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130,131],"tags":[],"class_list":["post-6726","post","type-post","status-publish","format-standard","hentry","category-opencv","category-python"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6726"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6726\/revisions"}],"predecessor-version":[{"id":9449,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6726\/revisions\/9449"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6726"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}