์ด์ ๋ณํ์์๋ ์ขํ๋ฅผ ์ฎ๊ธฐ๋ ๋ณํ์ ํ๋ค๋ฉด, ์ด์ ๊ฐ ์ขํํฝ์ ์ ์ ์ฅ๋ '๊ฐ'์ ๊ฐ์ง๊ณ ๋ณํ์ ํด๋ณผ ๊ฒ์ด๋ค. ์ด์ ํฌ์คํ ๋ด์ฉ์ ๋ณต์ตํด๋ณด์. ์ด๋ฏธ์ง๋ ๋ฐ๋ํ์ฒ๋ผ ๊ฒฉ์๋ฅผ ๋๋ ๋ฐฐ์ด์ ์ ์ฅ๋๊ณ , (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 ์ฌ์ด๋ก ๋งคํ๋ ๊ฒ์ด๋ค! ์๋๋ ๊ณผ์ ๋ก ์์ฑํ ์ฝ๋์ด๋ค.
์ฝ๋
ruhz3/ImgProcessing
Codes of digital image processing. Contribute to ruhz3/ImgProcessing development by creating an account on GitHub.
github.com
'๐ป > ๋ฉํฐ๋ฏธ๋์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์์์ฒ๋ฆฌ] ์ค๊ฐ๊ฐ ํํฐ, ์ค๊ณฝ์ ๊ฒ์ถ (0) | 2020.10.18 |
---|---|
[์์์ฒ๋ฆฌ] ๋ฐ์ค ํํฐ, ๊ฐ์ฐ์์ ํํฐ (1) | 2020.10.18 |
[์์์ฒ๋ฆฌ] ๊ธฐํ ๋ณํ, ์ญ๋ฐฉํฅ ๋งคํ (2) | 2020.10.11 |
[์์์ฒ๋ฆฌ] ๋์งํธ ์ด๋ฏธ์ง (0) | 2020.10.11 |
[ํ์ด์ฌ] ์ด๋ฏธ์ง โ ๊ทธ๋ฆฌ๋(๋ฐฐ์ด) (0) | 2020.09.21 |