{"id":6384,"date":"2019-03-19T22:09:33","date_gmt":"2019-03-19T13:09:33","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=6384"},"modified":"2019-05-03T14:22:12","modified_gmt":"2019-05-03T05:22:12","slug":"python%ea%b3%bc-opencv-6-%ec%9d%b4%eb%af%b8%ec%a7%80%ec%97%90-%eb%8c%80%ed%95%9c-%ea%b8%b0%eb%b3%b8-%ec%97%b0%ec%82%b0","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=6384","title":{"rendered":"Python\uacfc OpenCV \u2013 6 : \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc5f0\uc0b0"},"content":{"rendered":"<p>\uc774 \uae00\uc744 \uc791\uc131\ud558\uae30 \uc704\ud574 \ucc38\uc870\ud55c \uae00\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_core\/py_basic_ops\/py_basic_ops.html \uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc5d0\uc11c \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc5f0\uc0b0\uc774\ub77c\ud568\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc774\ubbf8\uc9c0\uc758 \ud53d\uc140\uac12\uc744 \uc77d\uac70\ub098 \ubcc0\uacbd\ud558\uae30<\/li>\n<li>\uc774\ubbf8\uc9c0\uc758 \uc18d\uc131 \uc77d\uae30<\/li>\n<li>ROI(Region Of Image, \uc774\ubbf8\uc9c0 \uc601\uc5ed) \uc9c0\uc815\ud558\uae30<\/li>\n<li>\uc774\ubbf8\uc9c0\ub97c \ucc44\ub110\ubcc4\ub85c \ub098\ub204\uac70\ub098 \ud569\uce58\uae30<\/li>\n<li>\uc774\ubbf8\uc9c0\uc758 \uac00\uc7a5\uc790\ub9ac \ub9cc\ub4e4\uae30<\/li>\n<\/ul>\n<p>\uc704\uc758 \ud56d\ubaa9\ub9cc \uc77d\uc5b4\uc11c\ub294 \ubb34\uc5c7\uc744 \uc758\ubbf8\ud558\ub294\uc9c0 \uc644\ubcbd\ud558\uac8c \uc774\ud574\ud558\uae34 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \ud558\ub098\uc529 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \ub2e4\uc74c \ucf54\ub4dc\ub85c \uc2dc\uc791\ud574 \ud558\ub098\uc529 \ub367\ubd99\uc5ec \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nimport cv2\r\nimport numpy as np\r\n\r\nimg = cv2.imread('.\/data\/people.png')\r\n<\/pre>\n<p>people.png\ub77c\ub294 \uc774\ubbf8\uc9c0\ub97c \ud558\ub098 \uc77d\uc5b4 img \ubcc0\uc218\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0..<\/p>\n<pre>\r\npx = img[0,100] # [row,column]\r\nprint(px) # [B,G,R]\r\n<\/pre>\n<p>\uc774\ubbf8\uc9c0\uc758 \ud53d\uc140 \uc911 y=0, x=100 \uc778 \uac12\uc744 \uc77d\uc5b4 \ud45c\uc2dc\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc758 \uacbd\uc6b0 \uacb0\uacfc\ub294 [ 68 129 117]\uac00 \ucd9c\ub825\ub418\ub294\ub370, \uc774\ubbf8\uc9c0\uac00 3\uac1c\uc758 \ucc44\ub110\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c 3\uac1c\uc758 \uac12\uc774 \ud45c\uc2dc\ub418\uba70 \uc21c\uc11c\ub300\ub85c Blue, Green, Red \ucc44\ub110\uc758 \uac12\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\nblue = img[0,100,0] # [row,column,channel]\r\nprint(blue) # Blue\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub294 \uc774\ubbf8\uc9c0\uc758 y=0, x=100\uc778 \ud53d\uc140\uc758 \uccab\ubc88\uc9f8 \ucc44\ub110\uc758 \uac12\uc744 \uc77d\uc2b5\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\uc758 \ud53d\uc140 \uc0c9\uc0c1\uc740 BGR \uc21c\uc11c\uc774\ubbc0\ub85c \uccab\ubc88\uc9f8\ub294 Blue \ucc44\ub110\uc758 \uac12\uc744 \uc77d\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc758 \uacbd\uc6b0 \uacb0\uacfc\ub294 68\ub85c \ud45c\uc2dc \ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nimg[0,100] = [255,255,255]\r\nimg[0,100,0] = 0\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c 1\ubc88\uc740 x=99, y=0\uc778 \ud53d\uc140\uc758 \uc0c9\uc0c1\uc744 BGR \uc21c\uc11c\ub85c 255,255,255\ub85c \ubcc0\uacbd\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 2\ubc88\uc740 x=100, y=0\uc778 \ud53d\uc140\uc758 \uccab\ubc88\uc9f8 \ucc44\ub110\uc744 0\uc73c\ub85c \ubcc0\uacbd\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. \uccab\ubc88\uc9f8 \ucc44\ub110\uc774\ubbc0\ub85c Blue \ucc44\ub110\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\npx = img.item(0,100,0)\r\nprint(px)\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub294 \uc774\ubbf8\uc9c0\uc758 y=0, x=100 \uc778 \ud53d\uc140\uc758 \uccab\ubc88\uc9f8 \ucc44\ub110\uc758 \uac12\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. \uac12\uc740 255\uac00 \ucd9c\ub825\ub429\ub2c8\ub2e4.<\/p>\n<pre>\r\nimg.itemset((0,100,0),255)\r\npx = img.item(0,100,0)\r\nprint(px)\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub294 \uba3c\uc800 y=0, x=100\uc778 \ud53d\uc140\uc758 \uccab\ubc88\uc9f8(0) \ucc44\ub110\uc758 \uac12\uc744 255\ub85c \ubcc0\uacbd\ud558\uace0, \ub2e4\uc2dc \ub3d9\uc77c\ud55c \ud53d\uc140\uc758 \uccab\ubc88\uc9f8 \ucc44\ub110\uc758 \uac12\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4. 255\uac00 \ucd9c\ub825\ub429\ub2c8\ub2e4.<\/p>\n<pre>\r\nprint(img.shape)\r\nprint(img.size)\r\nprint(img.dtype)\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc \uc911 1\ubc88\uc740 \uc774\ubbf8\uc9c0\uc758 \ucc28\uc6d0 \ud06c\uae30\ub97c \ucd9c\ub825\ud569\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\uac00 640&#215;480 \ud06c\uae30\uc774\uace0 1\ud53d\uc140\uc774 3Byte\uc778 RGB \ud615\uc2dd\uc774\ubbc0\ub85c \ucd9c\ub825\uc740 (480, 640, 3)\uc785\ub2c8\ub2e4. 2\ubc88 \ucf54\ub4dc\ub294 \uc774\ubbf8\uc9c0\uc758 \uc804\uccb4 Byte \ud06c\uae30\ub85c 480*640*3 \uac12\uc778 921600\uac00 \ucd9c\ub825\ub429\ub2c8\ub2e4. 3\ubc88\uc9f8 \ucf54\ub4dc\ub294 \ucc44\ub110\uc758 \ub370\uc774\ud130 \ud615\uc2dd\uc73c\ub85c\uc368 \ucd9c\ub825\uc740 uint8\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\nroi = img[280:340, 330:390]\r\nimg[273:333, 100:160] = roi\r\n\r\ncv2.rectangle(img, (330,280), (390,340), (0,0,255), 1)\r\ncv2.rectangle(img, (100,273), (160,333), (255,0,0), 1)\r\n\r\ncv2.imshow('img', img)\r\ncv2.waitKey()\r\ncv2.destroyAllWindows()\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc ROI\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub85c\uc368 1\ubc88 \ucf54\ub4dc\ub294 y\uac00 280\ubc88\uc9f8\uc5d0\uc11c (340-1)\ubc88\uc9f8\uc774\uba74\uc11c x\ub294 330\ubc88\uc9f8\uc5d0\uc11c (390-1)\ubc88\uc9f8\uae4c\uc9c0\uc758 \uc601\uc5ed\uc758 \ud53d\uc140\uac12\uc744 roi \uac1d\uccb4\uc5d0 \ubcf5\uc0ac(Copy)\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 2\ubc88 \ucf54\ub4dc\ub97c \ud1b5\ud574 roi \uac1d\uccb4\uc5d0 \uc800\uc7a5\ub41c \ud53d\uc140\uac12\uc744 \uc774\ubbf8\uc9c0(img \uac1d\uccb4)\uc758 y\uac00 273\ubc88\uc9f8\uc5d0\uc11c (333-1)\ubc88\uc9f8\uc774\uba74\uc11c x\ub294 100\ubc88\uc9f8\uc5d0\uc11c (160-1)\ubc88\uc9f8\uae4c\uc9c0\uc758 \uc601\uc5ed\uc5d0 \ubcf5\uc0ac\ud569\ub2c8\ub2e4. 4\ubc88\uc740 1\ubc88 \ucf54\ub4dc\uc758 ROI \uc601\uc5ed\uc744 \ube68\uac04\uc0c9 \uc0ac\uac01\ud615\uc73c\ub85c \uadf8\ub9ac\uace0 5\ubc88 \ucf54\ub4dc\ub294 2\ubc88 \ucf54\ub4dc\uc758 ROI \uc601\uc5ed\uc744 \ud30c\ub780\uc0c9 \uc0ac\uac01\ud615\uc73c\ub85c \uadf8\ub9ac\ub77c\ub294 \uac83\uc785\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\/03\/opencv_roi.png\" alt=\"\" width=\"1446\" height=\"1154\" class=\"aligncenter size-full wp-image-6387\" \/><\/p>\n<pre>\r\nb,g,r = cv2.split(img)\r\nimg = cv2.merge((b,g,r))\r\n<\/pre>\n<p>\uc704\uc758 1\ubc88 \ucf54\ub4dc\ub294 img \uac1d\uccb4\uc758 \uc774\ubbf8\uc9c0\ub97c \uac01 \ucc44\ub110\ub85c \ubd84\ub9ac\ud558\uc5ec \uac01\uac01 b, g, r \uac1d\uccb4\uc5d0 \ubcf5\uc0ac(Copy)\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 2\ubc88 \ucf54\ub4dc\ub294 \ucc44\ub110\uc744 \uc870\ud569\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\nb = img[:,:,0]\r\nimg[:,:,2] = 0\r\n<\/pre>\n<p>\uc704\uc758 1\ubc88 \ucf54\ub4dc\ub294 \uc774\ubbf8\uc9c0\uc758 0\ubc88\uc9f8 \ucc44\ub110\uc744 b \uac1d\uccb4\uc5d0 \ubcf5\uc0ac(Copy)\ud558\uace0, 2\ubc88\uc740 \uc774\ubbf8\uc9c0\uc758 3\ubc88\uc9f8 \ucc44\ub110\uc758 \ubaa8\ub4e0 \uac12\uc744 0\uc73c\ub85c \ub9cc\ub4ed\ub2c8\ub2e4. \uacb0\uacfc\uc801\uc73c\ub85c \uc774\ubbf8\uc9c0\uc5d0\uc11c Red \uc0c9\uac10\uc774 \ubaa8\ub450 \uc81c\uac70\ub429\ub2c8\ub2e4.<\/p>\n<p>\ub05d\uc73c\ub85c \uc774\ubbf8\uc9c0\uc5d0 \uac00\uc7a5\uc790\ub9ac\ub97c \ub9cc\ub4dc\ub294 \uc608\uc81c\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\nimport cv2\r\nimport numpy as np\r\nfrom matplotlib import pyplot as plt\r\n\r\nRED = [255,0,0]\r\n\r\nimg1 = cv2.imread('.\/data\/opencv_logo.png')\r\n\r\nreplicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)\r\nreflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)\r\nreflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)\r\nwrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)\r\nconstant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=RED)\r\n\r\nplt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')\r\nplt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')\r\nplt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')\r\nplt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')\r\nplt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')\r\nplt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')\r\n\r\nplt.show()\r\n<\/pre>\n<p>\ub9cc\ub4e4\uc5b4\uc9c4 \uac00\uc7a5\uc790\ub9ac\ub9cc\ud07c \uc774\ubbf8\uc9c0\uc758 \ud06c\uae30\ub294 \ucee4\uc9d1\ub2c8\ub2e4. \uacb0\uacfc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/03\/opencv_border.png\" alt=\"\" width=\"2391\" height=\"1602\" class=\"aligncenter size-full wp-image-6388\" \/><\/p>\n<p>\uacb0\uacfc\uc5d0\uc11c \ubcf4\uc774\ub294 \uac83\ucc98\ub7fc cv2.copyMakeBorder \ud568\uc218\ub97c \ud1b5\ud574 \uac00\uc7a5\uc790\ub9ac\uac00 \ucd94\uac00\ub418\ub294\ub370, \uc774 \ud568\uc218\uc758 6\ubc88\uc9f8 \uc778\uc790\uc5d0 \ub530\ub77c \ucd94\uac00\ub418\ub294 \uac00\uc7a5\uc790\ub9ac\uc758 \ud615\ud0dc\uac00 \uacb0\uc815\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \uae00\uc744 \uc791\uc131\ud558\uae30 \uc704\ud574 \ucc38\uc870\ud55c \uae00\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_core\/py_basic_ops\/py_basic_ops.html \uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc5f0\uc0b0\uc774\ub77c\ud568\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\uc758 \ud53d\uc140\uac12\uc744 \uc77d\uac70\ub098 \ubcc0\uacbd\ud558\uae30 \uc774\ubbf8\uc9c0\uc758 \uc18d\uc131 \uc77d\uae30 ROI(Region Of Image, \uc774\ubbf8\uc9c0 \uc601\uc5ed) \uc9c0\uc815\ud558\uae30 \uc774\ubbf8\uc9c0\ub97c \ucc44\ub110\ubcc4\ub85c \ub098\ub204\uac70\ub098 \ud569\uce58\uae30 \uc774\ubbf8\uc9c0\uc758 \uac00\uc7a5\uc790\ub9ac \ub9cc\ub4e4\uae30 \uc704\uc758 \ud56d\ubaa9\ub9cc \uc77d\uc5b4\uc11c\ub294 \ubb34\uc5c7\uc744 \uc758\ubbf8\ud558\ub294\uc9c0 \uc644\ubcbd\ud558\uac8c \uc774\ud574\ud558\uae34 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \ud558\ub098\uc529 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \ub2e4\uc74c \ucf54\ub4dc\ub85c \uc2dc\uc791\ud574 \ud558\ub098\uc529 \ub367\ubd99\uc5ec \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. import cv2 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=6384\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Python\uacfc OpenCV \u2013 6 : \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc5f0\uc0b0&#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-6384","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\/6384","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=6384"}],"version-history":[{"count":5,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6384\/revisions"}],"predecessor-version":[{"id":6392,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6384\/revisions\/6392"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6384"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}