๐Ÿ“˜ Programming/OpenCV

[์˜์ƒ ์ฒ˜๋ฆฌ] ๋””์ง€ํ„ธ ์˜์ƒ์˜ ํžˆ์Šคํ† ๊ทธ๋žจ (Histogram)

ํ•œ์ฝ”๋”ฉ 2020. 12. 29. 22:52
728x90
728x90

ํžˆ์Šคํ† ๊ทธ๋žจ (Histogram)

๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์„ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€‹

์ž…๋ ฅ ์˜์ƒ์„ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

(a)๋Š” 16๊ฐœ์˜ ํ™”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๊ณ , ํ™”์†Œ ๋น„ํŠธ ์ˆ˜๊ฐ€ 3๋น„ํŠธ๋ผ์„œ ๋ช…๋„๋ฅผ 8๊นŒ์ง€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ง€ํ„ธ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

ํžˆ์Šคํ† ๊ทธ๋žจ์„ ํ†ตํ•ด ์ž…๋ ฅ ์˜์ƒ์˜ ๋ช…๋„ ๊ฐ’์ด ๊ณจ๊ณ ๋ฃจ ๋ถ„ํฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

ํžˆ์Šคํ† ๊ทธ๋žจ์„ ํ†ตํ•ด ์˜์ƒ์˜ ํŠน์ง•์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฐ์ˆ  ์—ฐ์‚ฐ - ํžˆ์Šคํ† ๊ทธ๋žจ ์ด๋™ (Shifting)

1) ๋ง์…ˆ ์—ฐ์‚ฐ

๋ช…๋„ ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ์˜์ƒ์„ ๋ฐ์•„์ง€๋ฏ€๋กœ, ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๊ธฐ๋‘ฅ์ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

โ€‹

2) ๋บ„์…ˆ ์—ฐ์‚ฐ

๋ช…๋„ ๊ฐ’์„ ๊ฐ์†Œ์‹œ์ผœ ์˜์ƒ์„ ์–ด๋‘ก๊ฒŒํ•˜๋ฏ€๋กœ, ํžˆ์Šคํ† ๊ทธ๋žจ ๊ธฐ๋‘ฅ์ด ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

โ€‹

3) ๊ณฑ์…ˆ ์—ฐ์‚ฐ

๋ช…์•” ๋Œ€๋น„๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉฐ, ํžˆ์Šคํ† ๊ทธ๋žจ ๊ธฐ๋‘ฅ์˜ ๋ถ„ํฌ๊ฐ€ ๋„“์–ด์ง‘๋‹ˆ๋‹ค.

โ€‹

4) ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ

๋ช…์•” ๋Œ€๋น„๊ฐ€ ๊ฐ์†Œํ•˜์—ฌ, ํžˆ์Šคํ† ๊ทธ๋žจ ๊ธฐ๋‘ฅ์˜ ๋ถ„ํฌ๊ฐ€ ์ข์•„์ง‘๋‹ˆ๋‹ค.

โ€‹

ํžˆ์Šคํ† ๊ทธ๋žจ ์ŠคํŠธ๋ ˆ์นญ (Histogram Stretching)

์ŠคํŠธ๋ ˆ์นญ = ๋Š˜๋ฆฐ๋‹ค(?)

โ€‹

๋‚ฎ์€ ๋ช…์•” ๋Œ€๋น„์˜ ์˜์ƒ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ช…์•” ๋Œ€๋น„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ, ๋ช…์•” ๋Œ€๋น„ ์ŠคํŠธ๋ ˆ์นญ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

โ€‹

ํžˆ์Šคํ† ๊ทธ๋žจ์ด ๋ชจ๋“  ๋ฒ”์œ„์˜ ํ™”์†Œ ๊ฐ’์„ ํฌํ•จํ•˜๋„๋ก ๋ถ„ํฌ๋ฅผ ๋„“ํžˆ๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. (ํ™”์†Œ ์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ)

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ธฐ๋ณธ ๋ช…์•” ๋Œ€๋น„ ์ŠคํŠธ๋ ˆ์นญ๊ณผ ์—”๋“œ-์ธ ํƒ์ƒ‰์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

1) ๊ธฐ๋ณธ ๋ช…์•” ๋Œ€๋น„ ์ŠคํŠธ๋ ˆ์นญ

์ด์ƒ์ ์ด์ง€ ๋ชปํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ถ„ํฌ ์ค‘์—์„œ ๋ช…์•” ๋Œ€๋น„๊ฐ€ ๋‚ฎ์€ ๋””์ง€ํ„ธ ์˜์ƒ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

โ€‹

์•„๋ž˜๋Š” ์ˆ˜ํ–‰ ๊ณต์‹์ž…๋‹ˆ๋‹ค. (8๋น„ํŠธ ๊ธฐ๋ฐ˜)

old pixel : ์› ์˜์ƒ ํ™”์†Œ์˜ ๋ช…๋„ ๊ฐ’

new pixel : ๊ฒฐ๊ณผ ์˜์ƒ ํ™”์†Œ์˜ ๋ช…๋„ ๊ฐ’

low : ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ์ตœ์ € ๋ช…๋„ ๊ฐ’

high : ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ์ตœ๊ณ  ๋ช…๋„ ๊ฐ’

255 : 8๋น„ํŠธ์˜ ์ตœ๊ณ  ๋ช…๋„ ๊ฐ’ (ํ™”์†Œ์˜ ๋น„ํŠธ ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‹ฌ๋ผ์ง„๋‹ค)

โ€‹

์•„๋ž˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋ณด๋ฉด ๋ถ„ํฌ๊ฐ€ ๊ณ ๋ฅด๊ฒŒ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

์ŠคํŠธ๋ ˆ์นญ์„ ํ†ตํ•ด ์˜์ƒ์˜ ๋ช…์•” ๋Œ€๋น„๊ฐ€ ๋šœ๋ ทํ•ด์ง€๋ฉด์„œ ๊ณ ํ€„์ด ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

โ€‹

2) ์—”๋“œ-์ธ ํƒ์ƒ‰

๋ชจ๋“  ๋ฒ”์œ„์˜ ๋ช…๋„ ๊ฐ’์ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ํ™”์†Œ์˜ ๋Œ€๋ถ€๋ถ„์ด ํŠน์ • ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ ์˜์ƒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์˜์ƒ์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ „ ๊ตฌ๊ฐ„์— ๋ถ„ํฌํ•˜์ง€๋งŒ, ํŠน์ • ๋ถ€๋ถ„์—๋งŒ ์ง‘์ค‘๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ตœ์ €, ์ตœ๊ณ  ๊ฐ’ ์ฃผ์œ„์—๋Š” ๊ธฐ๋‘ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

โ€‹

์—”๋“œ-์ธ ํƒ์ƒ‰์€ ์ผ์ •ํ•œ ์–‘์˜ ํ™”์†Œ๋ฅผ ํ‘๋ฐฑ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ถ„ํฌ๋ฅผ ์ข€๋” ๊ท ์ผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ๋ช…์นญ์€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 2๊ฐœ์˜ ์ž„๊ณ„ ๊ฐ’ low, high๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‹

์•„๋ž˜๋Š” ์—”๋“œ-์ธ ํƒ์ƒ‰์„ ์ ์šฉ์‹œํ‚จ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

โ€‹

728x90
๋ฐ˜์‘ํ˜•