๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿค– Computer Vision

(11)
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์—์ง€ ๊ฐ•๋„์™€ ์—์ง€ ๋ฐฉํ–ฅ (๊ทธ๋ ˆ๋””์–ธํŠธ, ๊ฐ€์šฐ์‹œ์•ˆ, LOG ํ•„ํ„ฐ, ์˜๊ต์ฐจ ๊ฒ€์ถœ, ๋ผํ”Œ๋ผ์‹œ์•ˆ, Marr80 ์—์ง€ ๊ฒ€์ถœ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋‹ค์ค‘ ์Šค์ผ€์ผ) ์—์ง€ ๊ฐ•๋„์™€ ์—์ง€ ๋ฐฉํ–ฅ ๊ทธ๋ ˆ๋””์–ธํŠธ(๊ธฐ์šธ๊ธฐ)๋Š” ๋ฒกํ„ฐ์ด๋ฏ€๋กœ ์—์ง€ ๊ฐ•๋„์™€ ์—์ง€ ๋ฐฉํ–ฅ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ์‹์€ ๊ทธ๋ ˆ๋””์–ธํŠธ f์—์„œ ์—์ง€ ๊ฐ•๋„ S(y, x)์™€ ๊ทธ๋ ˆ๋””์–ธํŠธ ๋ฐฉํ–ฅ D(y, x)๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์—์ง€ ๊ฐ•๋„๋Š” ํ™”์†Œ (y, x)๊ฐ€ ์—์ง€์ผ ๊ฐ€๋Šฅ์„ฑ ๋˜๋Š” ์‹ ๋ขฐ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ด๋‹ค. ์†Œ๋ฒจ ๋งˆ์Šคํฌ๋ฅผ ์ด์šฉํ•œ ์—์ง€ ๊ฒ€์ถœ ์†Œ๋ฒจ ๋งˆ์Šคํฌ๋Š” ์˜์ƒ ๋‚ด์— ๋ฌผ์ฒด๋“ค์— ๋Œ€ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ฐพ์•„๋‚ผ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋งˆ์Šคํฌ๋กœ, ๋ฐ๊ธฐ์— ๋Œ€ํ•œ 1์ฐจ ๋ฏธ๋ถ„๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜๊ต์ฐจ ์ด๋ก  ์•ž์—์„œ ์†Œ๊ฐœํ•œ ์—์ง€ ์—ฐ์‚ฐ์ž๋Š” 1960~70๋…„๋Œ€ ์ดˆ๋ฐ˜์— ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , ์†Œ๋ฒจ ๋งˆ์Šคํฌ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. 1980๋…„์— Marr์™€ Hildreth๊ฐ€ ์˜๊ต์ฐจ ์ด๋ก ์„ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค. ๊ฐ€์šฐ์‹œ์•ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๊ฐ€์šฐ์‹œ์•ˆ ์Šค๋ฌด๋”ฉ์€ ๋‘ ๊ฐ€์ง€ ํšจ๊ณผ๋ฅผ ์ค€๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์žก์Œ์— ๋Œ€์ฒ˜..
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์˜ค์ธ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Otsu Algorithm) ์‹ค์Šต ์ฝ”๋“œ C์–ธ์–ด, C++ ์ด๋ก  2023.07.25 - [๐Ÿค– Computer Vision] - ์˜์ƒ์ฒ˜๋ฆฌ - ์ด์ง„ํ™”์™€ ์˜ค์ธ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Otsu Algorithm) ์˜์ƒ์ฒ˜๋ฆฌ - ์ด์ง„ํ™”์™€ ์˜ค์ธ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Otsu Algorithm) ์ด์ง„ํ™” ๋ช…์•” ์˜์ƒ์„ ํ‘๊ณผ ๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์ด์ง„ ์˜์ƒ์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. T๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด 1(๋ฐฑ), ์ž‘์œผ๋ฉด 0(ํ‘)์œผ๋กœ ํ•ด์„œ ํ‘๋ฐฑ์˜์ƒ์„ ๋งŒ๋“ ๋‹ค. (์ด์ง„ํ™”๋ฅผ ์‹œํ‚จ๋‹ค) ์ž„๊ณ„๊ฐ’ ๋ฐฉ๋ฒ• ๋‘ ๋ด‰์šฐ๋ฆฌ ์‚ฌ์ด์˜ ๊ณ„ mcrkgus.tistory.com ์˜ค์ธ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Otsu Alhorithm) C์–ธ์–ด ์‹ค์Šต ์ฝ”๋“œ ์ „์ฒด ์ฝ”๋“œ : https://github.com/mcrkgus/Computer-Vision/blob/main/otsu.c #include #include #pragma warning(disable:4996) int ..
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์ปฌ๋Ÿฌ Color (HSV, HSB, HSI๋ชจ๋ธ), ์‹ค์Šต ์ฝ”๋“œ C์–ธ์–ด, C++ ์ด๋ก  2023.08.29 - [๐Ÿค– Computer Vision] - ์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์ปฌ๋Ÿฌ Color (RGB, CIE, CMY, YCbCr, HSI, HSV ๋ชจ๋ธ), ์‹ค์Šต ์ฝ”๋“œ Python, openCV ์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์ปฌ๋Ÿฌ Color (RGB, CIE, CMY, YCbCr, HSI, HSV ๋ชจ๋ธ), ์‹ค์Šต ์ฝ”๋“œ Python, openCV Color ์ƒ‰์ƒ : ์ƒ‰์˜ ๋ช…์นญ, ์ƒ‰์˜ ํŠน์„ฑ ๋ช…๋„ : ๋ฐ์€ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋ƒ„ ์ฑ„๋„ : ์ƒ‰์ด ์„ ๋ช…ํ•˜๊ฑฐ๋‚˜ ํƒํ•œ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋ƒ„ RGB ์‚ผ์ค‘ ์ž๊ทน ์ด๋ก  ์›์ถ”์„ธํฌ๋Š” ํŒŒ์žฅ 630nm, 530nm, 450nm์— ๊ฐ€์žฅ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•œ๋‹ค. ๋น›์˜ ์‚ผ mcrkgus.tistory.com HSV ๋ชจ๋ธ C์–ธ์–ด ์ฝ”๋“œ ์ „์ฒด ์ฝ”๋“œ : https://github.com/mcrkgus/Co..
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์—์ง€ ๊ฒ€์ถœ (๋””์ง€ํ„ธ ์˜์ƒ์˜ ๋ฏธ๋ถ„, ๊ณ„๋‹จ ์—์ง€, ๋žจํ”„ ์—์ง€, ์Šค๋ฌด๋”ฉ ๊ธฐ๋ฒ•, ์†Œ๋ฒจ ์—ฐ์‚ฐ์ž, ์˜๊ต์ฐจ ์ฐพ๊ธฐ) ์˜์ƒ์ฒ˜๋ฆฌ์—์„œ ์—์ง€๋ž€? ์˜์ƒ์˜ ๋ช…์•”, ์ปฌ๋Ÿฌ, ๋˜๋Š” ํ…์Šค์ฒ˜์™€ ๊ฐ™์€ ํŠน์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ๋ณ€ํ•˜๋Š” ์ง€์ ์ด๋‹ค. ์—์ง€๋Š” 'ํ…Œ๋‘๋ฆฌ' ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๋ฉฐ ๋ฌผ์ฒด์˜ '๊ฒฝ๊ณ„'๋ฅผ ํ‘œ์‹œํ•ด ์ค€๋‹ค. ๋งค์นญ์— ์šฉ์ดํ•œ ์„ ๋ถ„์ด๋‚˜ ๊ณก์„ ์œผ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์—์ง€์˜ ํ•œ๊ณ„ ์‹ค์ข…๋œ ์—์ง€(๊ฑฐ์ง“ ๋ถ€์ •)์™€ ๊ฑฐ์ง“ ์—์ง€(๊ฑฐ์ง“ ๊ธ์ •)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋””์ง€ํ„ธ ์˜์ƒ์˜ ๋ฏธ๋ถ„ 1์ฐจ์› ์ˆ˜ํ•™์—์„œ ๋ณ€ํ™”๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ธฐ์ดˆ ์ด๋ก ์€ ๋ฏธ๋ถ„์ด๋‹ค. ์—ฐ์† ๊ณต๊ฐ„์—์„œ์˜ ๋ฏธ๋ถ„์€ ๋„ํ•จ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, x๊ฐ’์ด ๋ฏธ์„ธํ•˜๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์„ ๋•Œ ์—ฐ์† ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ์ธก์ •ํ•ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ ๋น„์ „์ด ๋‹ค๋ฃจ๋Š” ๋””์ง€ํ„ธ ์˜์ƒ์€ ์ด์‚ฐ ๊ณต๊ฐ„์—์„œ ์ •์˜๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์‚ฐ ๊ณต๊ฐ„์—์„œ ๋„ํ•จ์ˆ˜๋ฅผ ๊ทผ์‚ฌํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•ด์•ผ ํ•œ๋‹ค. ์œ„์˜ f'(x) ์‹์„ ๋ณด๋ฉด ๋งˆ์Šคํฌ[-1][1]๋กœ ์˜์ƒ f๋ฅผ ์ปจ๋ณผ๋ฃจ์…˜ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. 3-2์˜..
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - ์ปฌ๋Ÿฌ Color (RGB, CIE, CMY, YCbCr, HSI, HSV ๋ชจ๋ธ), ์‹ค์Šต ์ฝ”๋“œ Python, openCV Color ์ƒ‰์ƒ : ์ƒ‰์˜ ๋ช…์นญ, ์ƒ‰์˜ ํŠน์„ฑ ๋ช…๋„ : ๋ฐ์€ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋ƒ„ ์ฑ„๋„ : ์ƒ‰์ด ์„ ๋ช…ํ•˜๊ฑฐ๋‚˜ ํƒํ•œ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋ƒ„ RGB ์‚ผ์ค‘ ์ž๊ทน ์ด๋ก  ์›์ถ”์„ธํฌ๋Š” ํŒŒ์žฅ 630nm, 530nm, 450nm์— ๊ฐ€์žฅ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•œ๋‹ค. ๋น›์˜ ์‚ผ์›์ƒ‰์ด๋ฉฐ, ์ปฌ๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ(๋””์Šคํ”Œ๋ ˆ์ด)์— ์ ํ•ฉํ•˜๋‹ค. RGB์˜ ๋ณด์ƒ‰์€ CMY์ด๋‹ค. ์ง๊ด€์ ์ด์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์œ„์˜ RGB ์˜์ƒ์—์„œ์˜ ๋ณ€ํ™”์ฒ˜๋Ÿผ ๋นจ๊ฐ„์–‘๋ง์€ R์˜์ƒ์—์„œ ๋ฐ์€ ๋ช…์•”์„ ๊ฐ€์ง€์ง€๋งŒ, G์™€ B์˜์ƒ์—์„œ๋Š” ์–ด๋‘ก๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค. ์ดˆ๋ก์ƒ‰ ์ž”๋””๋Š” G์˜์ƒ์—์„œ ๋ฐ์€ ๋ช…์•”์„ ๊ฐ€์งˆ ๊ฒƒ์ด๋‹ค. ํ‘๋ฐฑ์˜์ƒ grayscale์„ RGB ์˜์ƒ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์‹ค์Šต ์ฝ”๋“œ import cv2 # ํ‘๋ฐฑ ์˜์ƒ ์ฝ๊ธฐ gray_image = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCAL..
์ปดํ“จํ„ฐ ๋น„์ „ ์˜์ƒ์ฒ˜๋ฆฌ - (ํŒฝ์ฐฝ, ์นจ์‹, ์—ด๊ธฐ, ๋‹ซ๊ธฐ) openCV Python ์ฝ”๋“œ 2023.07.31 - [Computer Vision] - ์˜์ƒ์ฒ˜๋ฆฌ - ์ด์ง„ ๋ชจํด๋กœ์ง€, ๋ช…์•” ๋ชจํด๋กœ์ง€ (ํŒฝ์ฐฝ, ์นจ์‹, ์—ด๊ธฐ, ๋‹ซ๊ธฐ) ์˜์ƒ์ฒ˜๋ฆฌ - ์ด์ง„ ๋ชจํด๋กœ์ง€, ๋ช…์•” ๋ชจํด๋กœ์ง€ (ํŒฝ์ฐฝ, ์นจ์‹, ์—ด๊ธฐ, ๋‹ซ๊ธฐ) ์˜์ƒ์ฒ˜๋ฆฌ์—์„œ ๋ชจํด๋กœ์ง€๋ž€ ? ์˜์ƒ์˜ ํ˜•ํƒœ์™€ ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ๋กœ์„œ, ์˜์ƒ ๋‚ด์˜ ๊ฐ์ฒด๋‚˜ ํŠน์ •ํ•œ ํŒจํ„ด์„ ์ฐพ๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ฃผ๋กœ ์ด์ง„ํ™”๋œ ์˜์ƒ์—์„œ ๊ฐ์ฒด์˜ ํ˜•ํƒœ, ํฌ๊ธฐ, ๊ฒฝ๊ณ„ mcrkgus.tistory.com ์ด์ „์— ์ž‘์„ฑํ•œ ์ด์ง„ ๋ชจํด๋กœ์ง€์™€ ๋ช…์•” ๋ชจํด๋กœ์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒฝ์ฐฝ, ์นจ์‹, ์—ด๊ธฐ, ๋‹ซ๊ธฐ ์— ๋Œ€ํ•œ ์ฝ”๋“œ์ด๋‹ค. openCV๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. Code img = cv2.imread('roopy.jpg', cv2.IMREAD_GRAYSCALE) ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๊ณ , ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ..

728x90