{"id":6366,"date":"2019-03-18T18:13:09","date_gmt":"2019-03-18T09:13:09","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=6366"},"modified":"2019-05-03T14:22:12","modified_gmt":"2019-05-03T05:22:12","slug":"python%ea%b3%bc-opencv-4-%eb%a7%88%ec%9a%b0%ec%8a%a4-%ec%9d%b4%eb%b2%a4%ed%8a%b8","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=6366","title":{"rendered":"Python\uacfc OpenCV &#8211; 4 : \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8"},"content":{"rendered":"<p>\uc6d0\ubb38\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_mouse_handling\/py_mouse_handling.html \uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubbf8\uc9c0 \ucc98\ub9ac\ub97c \uc704\ud574 OpenCV\uc5d0\uc11c\ub294 \uc790\uccb4\uc801\uc778 \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8 \uccb4\uacc4\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8\ub294 cv2.setMouseCallback \ud568\uc218\ub97c \ud1b5\ud574 \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8\ub97c \ucc98\ub9ac\ud560 Window\uc5d0 \ub4f1\ub85d\ub429\ub2c8\ub2e4. \uba3c\uc800 \uac04\ub2e8\ud55c \uc608\ub97c \ud1b5\ud574 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nimport cv2\r\nimport numpy as np\r\n\r\ndef draw_circle(event, x, y, flags, param):\r\n    if event == cv2.EVENT_LBUTTONDBLCLK:\r\n        cv2.circle(img,(x,y),100,(255,0,0),-1)\r\n\r\nimg = np.zeros((512,512,3), np.uint8)\r\ncv2.namedWindow('image')\r\ncv2.setMouseCallback('image',draw_circle)\r\n\r\nwhile(1):\r\n    cv2.imshow('image',img)\r\n    if cv2.waitKey(20) & 0xFF == 27:\r\n        break\r\n\r\ncv2.destroyAllWindows()\r\n<\/pre>\n<p>\uc704\uc758 \ud504\ub85c\uadf8\ub7a8\uc740 Window \uc704\uc5d0\uc11c \ub9c8\uc6b0\uc2a4 \ubc84\ud2bc\uc744 \ub354\ube14\ud074\ub9ad\ud558\uba74 \ud574\ub2f9 \uc9c0\uc810\uc5d0\uc11c \ud30c\ub780\uc0c9 \ud070 \uc6d0\uc744 \uadf8\ub9bd\ub2c8\ub2e4.<\/p>\n<p>\uc880\ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nimport cv2\r\nimport numpy as np\r\n\r\ndrawing = False\r\nmode = True\r\nix, iy = -1, -1\r\n\r\ndef draw_circle(event,x,y,flags,param):\r\n    global ix, iy, drawing, mode\r\n\r\n    if event == cv2.EVENT_LBUTTONDOWN:\r\n        drawing = True\r\n        ix, iy = x, y\r\n\r\n    elif event == cv2.EVENT_MOUSEMOVE:\r\n        if drawing == True:\r\n            if mode == True:\r\n                cv2.rectangle(img, (ix,iy), (x,y), (0,255,0), -1)\r\n            else:\r\n                cv2.circle(img, (x,y), 5, (0,0,255), -1)\r\n\r\n    elif event == cv2.EVENT_LBUTTONUP:\r\n        drawing = False\r\n        if mode == True:\r\n            cv2.rectangle(img, (ix,iy), (x,y), (0,255,0), -1)\r\n        else:\r\n            cv2.circle(img, (x,y), 5, (0,0,255), -1)\r\n\r\nimg = np.zeros((512,512,3), np.uint8)\r\ncv2.namedWindow('image')\r\ncv2.setMouseCallback('image', draw_circle)\r\n\r\nwhile(1):\r\n    cv2.imshow('image', img)\r\n    k = cv2.waitKey(1) & 0xFF\r\n    if k == ord('m'):\r\n        mode = not mode\r\n    elif k == 27:\r\n        break\r\n\r\ncv2.destroyAllWindows()\r\n<\/pre>\n<p>\uc704\uc758 \ud504\ub85c\uadf8\ub7a8\uc740 \ub9c8\uc6b0\uc2a4 \ub4dc\ub798\uadf8\ub97c \uc774\uc6a9\ud574 \uc0ac\uac01\ud615\uacfc \uc6d0\uc744 \uadf8\ub9b4 \uc218 \uc788\ub294\ub370, m \ud0a4\ub97c \ub20c\ub7ec \uadf8\ub9ac\uace0\uc790 \ud558\ub294 \uc6d0\uacfc \uc0ac\uac01\ud615\uc744 \uacb0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6d0\ubb38\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_mouse_handling\/py_mouse_handling.html \uc785\ub2c8\ub2e4. \uc774\ubbf8\uc9c0 \ucc98\ub9ac\ub97c \uc704\ud574 OpenCV\uc5d0\uc11c\ub294 \uc790\uccb4\uc801\uc778 \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8 \uccb4\uacc4\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8\ub294 cv2.setMouseCallback \ud568\uc218\ub97c \ud1b5\ud574 \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8\ub97c \ucc98\ub9ac\ud560 Window\uc5d0 \ub4f1\ub85d\ub429\ub2c8\ub2e4. \uba3c\uc800 \uac04\ub2e8\ud55c \uc608\ub97c \ud1b5\ud574 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. import cv2 import numpy as np def draw_circle(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: cv2.circle(img,(x,y),100,(255,0,0),-1) img = np.zeros((512,512,3), np.uint8) cv2.namedWindow(&#8216;image&#8217;) cv2.setMouseCallback(&#8216;image&#8217;,draw_circle) while(1): cv2.imshow(&#8216;image&#8217;,img) if cv2.waitKey(20) &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=6366\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Python\uacfc OpenCV &#8211; 4 : \ub9c8\uc6b0\uc2a4 \uc774\ubca4\ud2b8&#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-6366","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\/6366","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=6366"}],"version-history":[{"count":2,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6366\/revisions"}],"predecessor-version":[{"id":6368,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6366\/revisions\/6368"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6366"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}