๐Ÿ’ป/๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด

[์˜์ƒ์ฒ˜๋ฆฌ] ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”, ํžˆ์Šคํ† ๊ทธ๋žจ

ruhz 2020. 10. 11. 23:36

์ด์ „ ๋ณ€ํ™˜์—์„œ๋Š” ์ขŒํ‘œ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๋ณ€ํ™˜์„ ํ–ˆ๋‹ค๋ฉด, ์ด์   ๊ฐ ์ขŒํ‘œํ”ฝ์…€์— ์ €์žฅ๋œ '๊ฐ’'์„ ๊ฐ€์ง€๊ณ  ๋ณ€ํ™˜์„ ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… ๋‚ด์šฉ์„ ๋ณต์Šตํ•ด๋ณด์ž. ์ด๋ฏธ์ง€๋Š” ๋ฐ”๋‘‘ํŒ์ฒ˜๋Ÿผ ๊ฒฉ์ž๋ฅผ ๋‚˜๋ˆ  ๋ฐฐ์—ด์— ์ €์žฅ๋˜๊ณ , (8๋น„ํŠธ ๊ธฐ์ค€)๊ฐ ๋ฐฐ์—ด ์›์†Œ(ํ”ฝ์…€)๋Š” 0-255์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. 0์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ๊ฒ€์ •, 255์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ํ•˜์–‘์— ๊ฐ€๊น๋‹ค.

 

 

๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™” (Bit Pane Slicing)

 

Bit-plane Slicing

You probably know that everything on a computer is stored as strings of bits. In Bit-plane slicing, we take the advantage of this fact to perform various image operations. Let’s see how. I ho…

theailearner.com

๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”๋ž€ ํ”ฝ์…€์˜ ๊ฐ’์„ ๋น„ํŠธ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ, ๋น„ํŠธ์˜ ์œ„์น˜๋ณ„๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (x, y)ํ”ฝ์…€์˜ ๊ฐ’์ด 80์ด๋ผ๋ฉด, ์ปดํ“จํ„ฐ์—์„œ๋Š” ์ด๊ฒƒ์„ 0 1 0 1 0 0 0 0  ์˜ ์ด์ง„์ˆ˜๋กœ ์ €์žฅํ•œ๋‹ค.

 

๋น„ํŠธ์˜ ์œ„์น˜๋ฅผ ์™ผ์ชฝ๋ถ€ํ„ฐ Bit8 Bit7 ... Bit2 Bit1 ์ด๋ผ๊ณ  ํ•  ๋•Œ, ๊ฐ ํ”ฝ์…€์˜ Bit7 ๊ฐ’๋“ค๋งŒ ๋ชจ์•„์„œ, Bit7 ํ‰๋ฉด์„ ๋งŒ๋“ค๊ณ , Bit6 ๊ฐ’๋“ค๋งŒ ๋ชจ์•„์„œ Bit6 ํ‰๋ฉด์„ ๋งŒ๋“œ๋Š” ์‹์ด๋‹ค. ์˜ˆ์‹œ๋กœ ๋“  '80'์˜ ๊ฒฝ์šฐ Bit7๊ณผ Bit5์˜ ๊ฐ’์ด 1์ด๋ฏ€๋กœ, Bit7๊ณผ Bit5 ํ‰๋ฉด์—์„œ f(x, y)์˜ ๊ฐ’์€ 1×27, 1×25๊ฐ€ ๋˜๊ณ , ๋‚˜๋จธ์ง€ ํ‰๋ฉด์—์„œ๋Š” 0์˜ ๊ฐ’์„ ๊ฐ€์งˆ ๊ฒƒ์ด๋‹ค. Bit8์ด ๊ฐ€์žฅ ์ž๋ฆฟ์ˆ˜๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ์ง€์˜ ํŠน์ง•๋“ค์„ 8๊ฐœ์˜ ํ‰๋ฉด ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋‹ค. 

 

์œ„์˜ ์‚ฌ์ง„ ์—ญ์‹œ Bit8 ๋ถ€ํ„ฐ Bit1 ์ˆœ์„œ๋Œ€๋กœ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ ๊ฒƒ์ด๋‹ค. Bit1์€ ์‚ฌ์ง„์— ์˜ํ–ฅ์ด ์•„์ฃผ ๋ฏธ๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€์˜ ์ €์ž‘๊ถŒ์„ ๊ฐ€์ง„ ํšŒ์‚ฌ์˜ ๋กœ๊ณ ๋ฅผ ๋„ฃ์–ด, ๋””์ง€ํ„ธ ์›Œํ„ฐ๋งˆํฌ๋ฅผ ๋„ฃ๋Š” ๋“ฑ ์‘์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์•„๋ž˜๋Š” ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”๋ฅผ ์ด์šฉํ•ด์„œ ๊ณ ๋ž˜ ์‚ฌ์ง„์„ ์›Œํ„ฐ๋งˆํฌ๋กœ ์ฒจ๋ถ€ํ•œ ๊ฒƒ์ด๋‹ค. ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ๋Š” ์›Œํ„ฐ๋งˆํฌ๋ฅผ ์ „ํ˜€ ํ™•์ธํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”๋ฅผ ํ•˜๋ฉด Bit 1 ํ‰๋ฉด์—์„œ ๊ณ ๋ž˜ ์‚ฌ์ง„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์›Œํ„ฐ๋งˆํฌ๊ฐ€ ์ „ํ˜€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.
๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™” ํ•ด๋ณด๋ฉด, ์›Œํ„ฐ๋งˆํฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

ํžˆ์Šคํ† ๊ทธ๋žจ ํ‰ํ™œํ™” (Histogram Equalization)

ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ด๋ฏธ์ง€ ๋ฐฐ์—ด์—์„œ ํ”ฝ์…€๋“ค์ด ์–ด๋–ค ๊ฐ’์„ ๊ฐ–๋Š”์ง€ ๊ตฌ๊ฐ„๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•ด์„œ ๊ทธ ๊ฐฏ์ˆ˜๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ๋” ์ž์„ธํžˆ ๋งํ•˜๋ฉด, ํ”ฝ์…€ ๊ฐ’์ด 0์ธ ํ”ฝ์…€์€ ๋ช‡ ๊ฐœ, 1์ธ ํ”ฝ์…€์€ ๋ช‡ ๊ฐœ, ... 255์ธ ํ”ฝ์…€์€ ๋ช‡ ๊ฐœ์ธ์ง€ ์„ธ์„œ ๋ง‰๋Œ€๋กœ ์„ธ์šด ๊ฒƒ์ด๋‹ค.

 

ํžˆ์Šคํ† ๊ทธ๋žจ ํ‰ํ™œํ™”๋Š” ์ตœ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์ด ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์นด๋ฉ”๋ผ ๋ Œ์ฆˆ์— ํ–‡๋น›์ด ๊ฐ•ํ•˜๊ฒŒ ๋“ค์–ด์™€์„œ ์ด๋ฏธ์ง€๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๋„ˆ๋ฌด ๋ฐ๊ฒŒ ๋‚˜์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๋ฐ์€ ์ด๋ฏธ์ง€๋Š” ๋†’์€ ํ”ฝ์…€ ๊ฐ’์„ ๊ฐ–๋Š” ํ”ฝ์…€์ด ๋งŽ์„ ๊ฒƒ์ด๋ฏ€๋กœ, ๊ทธ๋ž˜ํ”„๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ ๋ ค์žˆ๋Š” ํ˜•ํƒœ์ผ ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ ๋ฐ์€ ๊ฒƒ์€ ๋ฐ๊ฒŒ, ๊ทธ์ค‘ ์–ด๋‘์šด ๊ฒƒ์€ ์–ด๋‘ก๊ฒŒ ๋งŒ๋“ค์–ด์„œ 0-255์˜ ๋ฐ๊ธฐ๊ฐ€ ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌํ•˜๋Š”, ๋” ์„ ๋ช…ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ์— ํžˆ์Šคํ† ๊ทธ๋žจ ํ‰ํ™œํ™”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ‰ํ™œํ™” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ”ฝ์…€๊ฐ’๋“ค์„ ์ญ‰ ์ค„ ์„ธ์› ์„ ๋•Œ, ์–ด๋–ค ํ”ฝ์…€๊ฐ’์€ ์–ด๋Š์ •๋„ ์ˆœ์„œ๊ฐ€ ๋ ๊นŒ๋ฅผ '๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜'๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ•œ๋‹ค. 0-1 ์‚ฌ์ด์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด 0.7์ด๋ผ๋ฉด ํ”ฝ์…€๊ฐ’์˜ ํฌ๊ธฐ๊ฐ€ ์ƒ์œ„ 70%์ •๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜์˜จ ์ด ๊ฐ’๋“ค์— 255๋ฅผ ๊ณฑํ•ด์„œ ์ •์ˆ˜๋‹จ์œ„๋กœ ๋ฐ˜์˜ฌ๋ฆผ ํ•ด์ฃผ๋ฉด ํ”ฝ์…€๊ฐ„์˜ ์ƒ๋Œ€์ ์ธ ๋ฐ๊ธฐ ํฌ๊ธฐ์— ์˜ํ•ด์„œ 0-255 ์‚ฌ์ด๋กœ ๋งคํ•‘๋  ๊ฒƒ์ด๋‹ค! ์•„๋ž˜๋Š” ๊ณผ์ œ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ด๋‹ค.

 

Histogram Equalization ๊ตฌํ˜„ ๊ฒฐ๊ณผ, ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

 

 

์ฝ”๋“œ

 

ruhz3/ImgProcessing

Codes of digital image processing. Contribute to ruhz3/ImgProcessing development by creating an account on GitHub.

github.com