{"id":6667,"date":"2019-04-09T09:48:54","date_gmt":"2019-04-09T00:48:54","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=6667"},"modified":"2020-05-28T12:26:11","modified_gmt":"2020-05-28T03:26:11","slug":"python%ea%b3%bc-opencv-22-%ed%9e%88%ec%8a%a4%ed%86%a0%ea%b7%b8%eb%9e%a8histogram-4-4","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=6667","title":{"rendered":"Python\uacfc OpenCV \u2013 23 : \ud788\uc2a4\ud1a0\uadf8\ub7a8(Histogram) 4\/4"},"content":{"rendered":"<p>\uc774 \uae00\uc758 \uc6d0\ubb38\uc740 https:\/\/opencv-python-tutroals.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_histograms\/py_histogram_backprojection\/py_histogram_backprojection.html#histogram-backprojection \uc785\ub2c8\ub2e4.<\/p>\n<p>2\ucc28\uc6d0 \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \uc751\uc6a9\ud558\uc5ec \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc6d0\ud558\ub294 \uac1d\uccb4\ub9cc\uc744 \ucd94\ucd9c\ud574 \ub0b4\ub294 \ubc29\ubc95\uc778 Backprojection\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubc14\ub85c \uc608\uc81c \ub098\uac11\ub2c8\ub2e4. \uc0c1\uc138\ud55c \uc124\uba85\uc740 \uc6d0\ubb38\uc744 \ucc38\uace0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport cv2\r\nimport numpy as np\r\n\r\nroi = cv2.imread('.\/data\/messi5_g.jpg')\r\nhsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV)\r\n\r\ntarget = cv2.imread('.\/data\/messi5.jpg')\r\nhsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV)\r\n\r\n# calculating object histogram\r\nroihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] )\r\n\r\n# normalize histogram and apply backprojection\r\ncv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX)\r\ndst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1)\r\n\r\n# Now convolute with circular disc\r\ndisc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))\r\ncv2.filter2D(dst,-1,disc,dst)\r\n\r\n# threshold\r\nret,thresh = cv2.threshold(dst,50,255,0)\r\n\r\n# threshold and binary AND\r\nthresh = cv2.merge((thresh,thresh,thresh))\r\nres = cv2.bitwise_and(target,thresh)\r\n\r\nres = np.vstack((thresh,res))\r\n\r\ncv2.imshow('result', res)\r\ncv2.waitKey()\r\ncv2.destroyAllWindows()\r\n<\/pre>\n<p>\uc704\uc5d0\uc11c messi5.jpg\ub294 \uc5b4\ub5a4 \uac1d\uccb4\ub97c \ucd94\ucd9c\ud560 \ub300\uc0c1\uc774\uace0 messi5_g.jpg\ub294 \ucd94\ucd9c\ud560 \ub300\uc0c1\uc785\ub2c8\ub2e4. messi5.jpg\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\/messi5.jpg\" alt=\"\" width=\"548\" height=\"342\" class=\"aligncenter size-full wp-image-6668\" \/><\/p>\n<p>messi5_g.jpg\ub294 \ub2e4\uc74c\uacfc \uac19\uc740\ub370, \uc774 \uc774\ubbf8\uc9c0\ub294 messi5.jpg\uc5d0\uc11c \uc798\ub77c\ub0b4\uae30\ub85c \ucd94\ucd9c\ud55c \uc774\ubbf8\uc9c0\uc785\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/04\/messi5_g.jpg\" alt=\"\" width=\"87\" height=\"53\" class=\"aligncenter size-full wp-image-6670\" \/><\/p>\n<p>\uc989, \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc794\ub514\uc5d0 \ud574\ub2f9\ub418\ub294 \uc601\uc5ed\uc744 \ucd94\ucd9c\ud558\uaca0\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc704\uc758 \ucf54\ub4dc\uc758 \uc2e4\ud589 \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\/histogram4-1.png\" alt=\"\" width=\"553\" height=\"718\" class=\"aligncenter size-full wp-image-6672\" \/><\/p>\n<p>\uacb0\uacfc\ub85c \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0\uac00 2\uac1c\uc774\uace0, \uc774\ub97c \ud558\ub098\ub85c \ud569\uccd0\uc11c \ud45c\uc2dc\ud55c \uac83\uc778\ub370.. \uc704\uc5d0\ub294 \uc794\ub514\uc5d0 \ud574\ub2f9\ub418\ub294 \uc601\uc5ed\uc5d0 \ub300\ud55c \uacb0\uacfc \ub9c8\uc2a4\ud06c \uc774\ubbf8\uc9c0\uc774\uace0 \ub450\ubc88\uc9f8\ub294 \uc774 \ub9c8\uc2a4\ud06c \uc774\ubbf8\uc9c0\uc640 \uc6d0\ubcf8 \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c bitwise \uc5f0\uc0b0\uc744 \ud1b5\ud574 \uc2e4\uc81c \uc794\ub514 \uc601\uc0c1\ub9cc\uc744 \ucd94\ucd9c\ud55c \uacb0\uacfc\uc785\ub2c8\ub2e4.<\/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_histograms\/py_histogram_backprojection\/py_histogram_backprojection.html#histogram-backprojection \uc785\ub2c8\ub2e4. 2\ucc28\uc6d0 \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \uc751\uc6a9\ud558\uc5ec \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc6d0\ud558\ub294 \uac1d\uccb4\ub9cc\uc744 \ucd94\ucd9c\ud574 \ub0b4\ub294 \ubc29\ubc95\uc778 Backprojection\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubc14\ub85c \uc608\uc81c \ub098\uac11\ub2c8\ub2e4. \uc0c1\uc138\ud55c \uc124\uba85\uc740 \uc6d0\ubb38\uc744 \ucc38\uace0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. import cv2 import numpy as np roi = cv2.imread(&#8216;.\/data\/messi5_g.jpg&#8217;) hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV) target = cv2.imread(&#8216;.\/data\/messi5.jpg&#8217;) hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV) # calculating object histogram roihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=6667\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Python\uacfc OpenCV \u2013 23 : \ud788\uc2a4\ud1a0\uadf8\ub7a8(Histogram) 4\/4&#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-6667","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\/6667","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=6667"}],"version-history":[{"count":6,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6667\/revisions"}],"predecessor-version":[{"id":9457,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6667\/revisions\/9457"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6667"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}