{"id":45040,"date":"2021-05-03T10:47:59","date_gmt":"2021-05-03T01:47:59","guid":{"rendered":"https:\/\/www.charlezz.com\/?p=45040"},"modified":"2021-05-03T10:54:41","modified_gmt":"2021-05-03T01:54:41","slug":"%ec%95%88%eb%93%9c%eb%a1%9c%ec%9d%b4%eb%93%9c%eb%a1%9c-%eb%b0%b0%ec%9a%b0%eb%8a%94-opencv-%ec%b9%b4%ed%88%b0-%ed%95%84%ed%84%b0-%eb%b0%8f-%ec%8a%a4%ec%bc%80%ec%b9%98-%ed%95%84%ed%84%b0","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=45040","title":{"rendered":"[\uc548\ub4dc\ub85c\uc774\ub4dc\ub85c \ubc30\uc6b0\ub294 OpenCV] \uce74\ud230 \ud544\ud130 \ubc0f \uc2a4\ucf00\uce58 \ud544\ud130"},"content":{"rendered":"<h1>\uce74\ud230 \ud544\ud130 \ubc0f \uc2a4\ucf00\uce58 \ud544\ud130<\/h1>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screenshot-1619169735861.jpg\"><\/a>\u00a0\uce74\uba54\ub77c\ub85c \ubd80\ud130 \uc785\ub825\ubc1b\uc740 \uc601\uc0c1\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \ud544\ud130 \ucc98\ub9ac\ud558\uc5ec \uc7ac\ubbf8\uc788\ub294 \uae30\ub2a5\uc744 \uad6c\ud604\ud574\ubcf4\uc790.<\/p>\n<h2>\uce74\ud230 \ud544\ud130\u00a0<\/h2>\n<div style=\"width: 750px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]--><br \/>\n<video class=\"wp-video-shortcode\" id=\"video-45040-1\" width=\"750\" height=\"942\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174495509.mp4?_=1\" \/><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174495509.mp4\">https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174495509.mp4<\/a><\/video><\/div>\n<p>\uce74\ud230\ud544\ud130\ub294 \uc6d0\ubcf8 \uc601\uc0c1\uc744 \ube14\ub7ec\ub85c \ubb49\uac8c\uace0, \ud55c\ud3b8\uc73c\ub85c\ub294 \uc6d0\ubcf8\uc601\uc0c1\uc758 \uc678\uacfd\uc120\uc744 \uac80\ucd9c\ud55c\ub2e4. \uc120\ucc98\ub9ac \ub41c \ub450 \uc601\uc0c1\uc744 \ud569\uce58\uba74 \ub9cc\ud654\uac19\uc740 \ub290\ub08c\uc758 \uc601\uc0c1\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4. \uc774\ub97c <strong>\uce74\ud230\ud544\ud130<\/strong>\ub77c\uace0 \ud55c\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-cartoonfilter-1.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-cartoonfilter-1-1024x648.png\" alt=\"\" width=\"750\" height=\"475\" class=\"alignnone size-large wp-image-45044\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-cartoonfilter-1-1024x648.png 1024w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-cartoonfilter-1-300x190.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-cartoonfilter-1-768x486.png 768w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\uce74\ud230\ud544\ud130\ub97c \uc801\uc6a9\ud560 \ub54c \uc6d0\ubcf8\uc601\uc0c1\uc758 \uc0ac\uc774\uc988\ub97c \uc904\uc5ec\uc11c \uc601\uc0c1\ucc98\ub9ac\ub97c \ud37c\ud3ec\uba3c\uc2a4\ub97c \uac00\uc18d\ud654 \ud558\uba70, \ub3d9\uc2dc\uc5d0 \uc2dc\uac01\uc801\uc73c\ub85c\ub3c4 \ud6a8\uacfc\uc801\uc778 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\ub2e4 . Canny() \ud568\uc218\ub97c \ud1b5\ud574 \uc5e3\uc9c0\ub97c \uac80\ucd9c\ud558\uace0 \uc774\uc9c4\ud654 \ub41c \uc601\uc0c1\uc5d0 \ub300\ud574 \ud770\uc0c9\uacfc \uac80\uc815\uc0c9\uc744 \ubc18\uc804\uc2dc\ucf1c \uc5e3\uc9c0\ub97c \uac80\uc815\uc0c9\uc73c\ub85c \ub098\ud0c0\ub0b8\ub2e4. \ube14\ub7ec\ub41c \uc774\ubbf8\uc9c0\uc640 \uc5e3\uc9c0\uc601\uc0c1\uc744 bitwise_and() \uc5f0\uc0b0\uc790\ub85c \ud569\uc131\ud558\uace0 \ub2e4\uc2dc \uc6d0\ub798 \uc0ac\uc774\uc988\ub85c \ubcc0\uacbd\ud55c\ub2e4.<\/p>\n<p>\uc548\ub4dc\ub85c\uc774\ub4dc \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<pre class=\"\"><span>override fun <\/span><span>process<\/span>(src: Mat): Mat {\r\n    <span>val <\/span>width = src.width()\r\n    <span>val <\/span>height = src.height()\r\n    <span>\/\/ \uc774\ubbf8\uc9c0\uc758 \ud06c\uae30\ub97c \uc904\uc774\uba74 \ud6a8\uacfc\uc801\uc73c\ub85c \ubb49\uac1c\uace0, \uc5f0\uc0b0\ub7c9\uc744 \ube68\ub9ac \ud558\ub294 \ud6a8\uacfc\uac00 \uc788\uc74c.<\/span><span>\r\n<\/span><span>    <\/span><span>val <\/span>resizedSrc = Mat()\r\n    Imgproc.resize(src<span>, <\/span>resizedSrc<span>, <\/span>Size(width \/ <span>8.0<\/span><span>, <\/span>height \/ <span>8.0<\/span>))\r\n    <span>\/\/ \ube14\ub7ec \uc801\uc6a9<\/span><span>\r\n<\/span><span>    <\/span><span>val <\/span>blur = Mat()\r\n    Imgproc.bilateralFilter(resizedSrc<span>, <\/span>blur<span>, <\/span>-<span>1<\/span><span>, <\/span><span>20.0<\/span><span>, <\/span><span>7.0<\/span>)\r\n    <span>\/\/ \uc5e3\uc9c0 \uac80\ucd9c\ud55c \ub4a4, \uc774\ubbf8\uc9c0\ub97c \ubc18\uc804\uc2dc\ud0a8\ub2e4.<\/span><span>\r\n<\/span><span>    <\/span><span>val <\/span>edge = Mat()\r\n    Imgproc.Canny(resizedSrc<span>, <\/span>edge<span>, <\/span><span>100.0<\/span><span>, <\/span><span>150.0<\/span>)\r\n    Core.bitwise_not(edge<span>, <\/span>edge)\r\n    Imgproc.cvtColor(edge<span>, <\/span>edge<span>, <\/span>Imgproc.<span>COLOR_GRAY2BGR<\/span>)\r\n    <span>\/\/\ube14\ub7ec\uc2dc\ud0a8 \uc774\ubbf8\uc9c0\uc640 \ubc18\uc804\ub41c edge\ub97c and\uc5f0\uc0b0\uc790\ub85c \ud569\uce58\uba74 edge\ubd80\ubd84\uc740 \uac80\uc815\uc0c9\uc73c\ub85c \ub098\uc624\uace0, \ub098\uba38\uc9c0\ub294 \ub9ce\uc774 \ubb49\uac1c\uc9c0\uace0 \ube14\ub7ec\ucc98\ub9ac\ub41c \uc774\ubbf8\uc9c0\ub85c \ub098\uc634, \uce74\ud230\ud6a8\uacfc<\/span><span>\r\n<\/span><span>    <\/span><span>val <\/span>dst = Mat()\r\n    Core.bitwise_and(blur<span>, <\/span>edge<span>, <\/span>dst)\r\n    Imgproc.resize(dst<span>, <\/span>dst<span>, <\/span>Size(width.toDouble()<span>, <\/span>height.toDouble())<span>, <\/span><span>1.0<\/span><span>, <\/span><span>1.0<\/span><span>, <\/span>Imgproc.<span>INTER_NEAREST<\/span>)\r\n    <span>return <\/span>dst\r\n}<\/pre>\n<p>\uadf8\ub7f0\ub370 \uc774\ub807\uac8c \ubcf5\uc7a1\ud558\uac8c \uad6c\ud604\ud560 \ud544\uc694 \uc5c6\uc774 OpenCV\uc5d0\uc11c\ub294 stylization()\uc774\ub77c\ub294 \ud568\uc218\ub97c \uc81c\uacf5\ud558\ub294\ub370, \uc774\ub97c \uc774\uc6a9\ud558\uba74 \uce74\ud230\ud544\ud130 \ud6a8\uacfc\ub97c \uc190\uc27d\uac8c \uad6c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre class=\"\"><span>Photo.stylization<\/span>(Mat src<span>, <\/span>Mat dst<span>, float <\/span>sigma_s<span>, float <\/span>sigma_r)<\/pre>\n<pre class=\"\">src : \uc785\ub825\uc601\uc0c1\r\ndst : \ucd9c\ub825\uc601\uc0c1\r\nsigma_s : 0~200\uc758 \uac12.<span> \uc774\ubbf8\uc9c0\uac00 \uc5bc\ub9c8\ub098 \uc2a4\ubb34\uc2a4\ud574\uc9c8\uc9c0\ub97c \uacb0\uc815<\/span>\r\nsigma_r : 0~1\uc758 \uac12. <span>\uc774\ubbf8\uc9c0\uac00 \uc2a4\ubb34\uc2a4\ud574\uc9c0\ub294 \ub3d9\uc548 \uc5e3\uc9c0\ub97c \uc5bc\ub9c8\ub9cc\ud07c \ubcf4\uc874\uc2dc\ud0ac\uc9c0\ub97c \uacb0\uc815<\/span><\/pre>\n<h2>\uc2a4\ucf00\uce58 \ud544\ud130<\/h2>\n<div style=\"width: 750px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-45040-2\" width=\"750\" height=\"942\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174513866.mp4?_=2\" \/><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174513866.mp4\">https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/04\/www.charlezz.com-opencv-screencapture-1619174513866.mp4<\/a><\/video><\/div>\n<p>\uc2a4\ucf00\uce58 \ud544\ud130\ub294 \uc6d0\ubcf8\uc601\uc0c1\uc744 \uc5f0\ud544\ub85c \uc2a4\ucf00\uce58\ub9cc \ud55c \uac83 \ucc98\ub7fc \ubcc0\uacbd\uc2dc\ucf1c\uc8fc\ub294 \ud544\ud130\ub2e4. \uc601\uc0c1\uc5d0\uc11c \uc0c1\ub300\uc801\uc73c\ub85c \ud3c9\ud0c4\ud55c \uc601\uc5ed\uc740 \ud770\uc0c9\uc73c\ub85c \ub098\ud0c0\ub0b4\uace0, \uc5e3\uc9c0 \uadfc\ubc29\uc5d0\uc11c\ub294 \uc5b4\ub450\uc6b4 \uc601\uc5ed\uc744 \uac80\uc815\uc0c9\uc73c\ub85c \ubc1d\uc740 \uc601\uc5ed\uc740 \ud770\uc0c9\uc73c\ub85c \uc124\uc815\ud55c\ub2e4.<\/p>\n<p>\uc6d0\ubcf8 \uc601\uc0c1\uc744 \ud68c\uc0c9\uc73c\ub85c \ubcc0\uacbd\ud558\uace0 \uac00\uc6b0\uc2dc\uc548 \ud544\ud130\ub97c \uc801\uc6a9\ud55c\ub2e4. \ud68c\uc0c9\uc774\ubbf8\uc9c0\uc640 \uac00\uc6b0\uc2dc\uc548 \ube14\ub7ec\ub97c \uc801\uc6a9\ud55c \uc774\ubbf8\uc9c0\ub97c divide()\ud568\uc218\ub97c \ud1b5\ud574 \ub098\ub208 \uac12\uc5d0 255\ub97c \uacf1\ud558\uba74\u00a0 \uc5e3\uc9c0\uac00 \ub0a8\ub294\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/05\/www.charlezz.com-opencv-cartoonfilter.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2021\/05\/www.charlezz.com-opencv-cartoonfilter-1024x650.png\" alt=\"\" width=\"750\" height=\"476\" class=\"alignnone size-large wp-image-45061\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/05\/www.charlezz.com-opencv-cartoonfilter-1024x650.png 1024w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/05\/www.charlezz.com-opencv-cartoonfilter-300x190.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2021\/05\/www.charlezz.com-opencv-cartoonfilter-768x488.png 768w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/p>\n<p>\uc548\ub4dc\ub85c\uc774\ub4dc \uc608\uc81c\ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<pre class=\"lang: decode:true\">override fun process(src: Mat): Mat {\r\n    \/\/\ud68c\uc0c9\uc870 \uc774\ubbf8\uc9c0 \ub9cc\ub4e4\uae30\r\n    val gray = Mat()\r\n    Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY)\r\n    \/\/ \ud68c\uc0c9\uc870 \uc774\ubbf8\uc9c0\ub97c \ube14\ub7ec\uc2dc\ud0a4\uae30\r\n    val blur = Mat()\r\n    Imgproc.GaussianBlur(gray, blur, Size(0.0, 0.0), 3.0)\r\n    \/\/ \uc5e3\uc9c0\ub9cc \ub0a8\uace0 \ud3c9\ud0c4\ud55c \ubd80\ubd84\uc740 \ud770\uc0c9\uc73c\ub85c \ubc14\ub01c\r\n    val dst = Mat()\r\n    Core.divide(gray, blur, dst, 255.0)\r\n    return dst\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uce74\ud230 \ud544\ud130 \ubc0f \uc2a4\ucf00\uce58 \ud544\ud130 \u00a0\uce74\uba54\ub77c\ub85c \ubd80\ud130 \uc785\ub825\ubc1b\uc740 \uc601\uc0c1\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \ud544\ud130 \ucc98\ub9ac\ud558\uc5ec \uc7ac\ubbf8\uc788\ub294 \uae30\ub2a5\uc744 \uad6c\ud604\ud574\ubcf4\uc790. \uce74\ud230 \ud544\ud130\u00a0 \uce74\ud230\ud544\ud130\ub294 \uc6d0\ubcf8 \uc601\uc0c1\uc744 \ube14\ub7ec\ub85c \ubb49\uac8c\uace0, \ud55c\ud3b8\uc73c\ub85c\ub294 \uc6d0\ubcf8\uc601\uc0c1\uc758 \uc678\uacfd\uc120\uc744 \uac80\ucd9c\ud55c\ub2e4. \uc120\ucc98\ub9ac \ub41c \ub450 \uc601\uc0c1\uc744 \ud569\uce58\uba74 \ub9cc\ud654\uac19\uc740 \ub290\ub08c\uc758 \uc601\uc0c1\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4. \uc774\ub97c \uce74\ud230\ud544\ud130\ub77c\uace0 \ud55c\ub2e4. &nbsp; \uce74\ud230\ud544\ud130\ub97c \uc801\uc6a9\ud560 \ub54c \uc6d0\ubcf8\uc601\uc0c1\uc758 \uc0ac\uc774\uc988\ub97c \uc904\uc5ec\uc11c \uc601\uc0c1\ucc98\ub9ac\ub97c \ud37c\ud3ec\uba3c\uc2a4\ub97c \uac00\uc18d\ud654 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[27],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/45040"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45040"}],"version-history":[{"count":3,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/45040\/revisions"}],"predecessor-version":[{"id":45062,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/45040\/revisions\/45062"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}