ํฝ์ ์ฒ๋ฆฌ๋ ๋จ์ผ ํฝ์ ์ฒ๋ฆฌ์ ํฝ์ ๊ทธ๋ฃน ์ฒ๋ฆฌ๋ก ๋๋ ์ ์๋ค.
| ์๋ฏธ | ์ข ๋ฅ | |
| ๋จ์ผ ํฝ์ ์ฒ๋ฆฌ | ์ด์ ํฝ์ ๊ณผ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ ฅ ์์์ ๊ฐ ํฝ์ ๊ฐ์ ๋ณํํ ํ ๊ฒฐ๊ณผ ์์์ ๋์ผํ ์์น์ ์ถ๋ ฅํ๋ ์ฐ์ฐ | ์ฐ์ ์ฐ์ฐ, ๋ ผ๋ฆฌ์ฐ์ฐ, ๊ทธ๋ ์ด์ค์ผ์ผ, ๊ณ ์ ์๊ณ๊ฐ์ผ๋ก ์ด์งํ |
| ํฝ์ ๊ทธ๋ฃน ์ฒ๋ฆฌ | ์ถ๋ ฅ ์์์ ์๋ก์ด ํฝ์ ๊ฐ์ ๊ฒฐ์ ํ ๋ ๊ทธ ์ฃผ์์ ์ด์ ํฝ์ ๋ค๋ ํจ๊ป ๊ณ ๋ คํ๋ ๊ณต๊ฐ ์์ญ ์ฐ์ฐ, ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ผ๋ก ์ฒ๋ฆฌ | ๋ธ๋ฌ๋ง & ์คํ๋, ๊ฐ๋ณ ์๊ณ๊ฐ์ผ๋ก ์ง์ญ ์ด์งํ |
๐ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ (Convolution, ํฉ์ฑ๊ณฑ)
์ฒ๋ฆฌํ๊ณ ํ๋ ํฝ์ ๊ฐ์ ์ด์ ํฝ์ ๊ณผ ๊ฐ๊ฐ์ ๋์ํ๋ 2์ฐจ์ ๋ฐฐ์ด ๋ด์ ๊ฐ์ค์น(ํํฐ์ ๊ฐ)๋ฅผ ๊ณฑํ์ฌ ๊ณฑํ ๊ฐ๋ค์ ๋ชจ๋ ๋ํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ฐ์ฐ
ํํฐ (Filter, Mask)
์ ๋ ฅ๋๋ ์ ํธ์ ์ผ๋ถ ์ฑ๋ถ์ ์ ๊ฑฐํ๊ฑฐ๋ ์ผ๋ถ ํน์ฑ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ค๊ณ๋ ํ๋์ ์์คํ

โ cv2.filter2D(src, ddepth, kernel)
์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ํํ๋ ํจ์๋ก src๋ ์ ๋ ฅ ์์, ddepth๋ ์ถ๋ ฅ ์์์ ๋ฐ์ดํฐ ํ์ ์ผ๋ก -1๋ก ์ง์ ํ๋ฉด ์ ๋ ฅ ์์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ์์ฑํ๋ค. kernel์ ํํฐ ํ๋ ฌ์ ๊ฐ์ด๋ค.
๐ ์ด์งํ
์ด๋ค ์ฃผ์ด์ง ์๊ณ๊ฐ(threshold) ๋ณด๋ค ๋ฐ์ ํฝ์ ๋ค์ ๋ชจ๋ ํฐ์์ผ๋ก ๊ทธ๋ ์ง ์์ ํฝ์ ๋ค์ ๋ชจ๋ ๊ฒ์์์ผ๋ก ๋ฐ๊พธ๋ ์์ ์ด๋ค.
1๏ธโฃ ์ ์ญ ์ด์งํ
๋จ์ผ ํฝ์ ์ฒ๋ฆฌ์ ์ข ๋ฅ์ธ ์ ์ญ ์ด์งํ๋ ๊ฐ ํฝ์ ๊ฐ์ด ๊ณ ์ ์๊ณ๊ฐ๋ณด๋ค ์์ผ๋ฉด 0, ํฌ๋ฉด 255๋ก ํฝ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ค.
โ cv2.threshold(src, thresh, maxval, type)
์ ์ญ ์ด์งํ ํจ์๋ก์จ src๋ ์ ๋ ฅ ์์, thresh๋ ์๊ณ๊ฐ, maxval์ ์๊ณ๊ฐ๋ณด๋ค ํด ๋ ์ ์ฉ๋๋ ์ต๋๊ฐ, type์ ์๊ณ๊ฐ ์ ์ฉ ๋ฐฉ๋ฒ์ด๋ค.

์ฝ๋์์์ ์๊ณ๊ฐ์ 127์ด๊ณ maxval์ 255, cv2.THRESH_BINARY์ ํฝ์ ๊ฐ์ด thresh๋ณด๋ค ํฌ๋ฉด maxval, ์์ผ๋ฉด 0์ผ๋ก ํ ๋นํ๋ ์๊ณ๊ฐ ์ ์ฉ ๋ฐฉ๋ฒ์ด๋ค.

์ ์ญ ์ด์งํ๋ ์๊ณ๊ฐ์ด ๊ณ ์ ๋์ด์๋ค๋ณด๋ ๋ฐ๊ธฐ ๋ณํ๊ฐ ์ฌํ ์์์๋ ์๊ณ๊ฐ ์ค์ ์ด ์ด๋ ต๋ค.
2๏ธโฃ ์ง์ญ ์ด์งํ
์ ์ญ ์ด์งํ์ ๋จ์ ์ ๊ฐ์ ํ๊ธฐ ์ํด ๊ฐ๋ณ ์๊ณ๊ฐ์ ์ฌ์ฉํ๋ ์ง์ญ ์ด์งํ๊ฐ ์๋ค. ํฝ์ ๊ทธ๋ฃน ๋จ์๋ง๋ค ์๊ณ๊ฐ์ ์ค์ ํ๊ณ ๊ทธ ๊ฐ๋ณด๋ค ์์ผ๋ฉด 0, ํฌ๋ฉด 255๋ก ํฝ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ค.
โ cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
์ง์ญ ์ด์งํ ํจ์๋ก์จ src๋ ์ ๋ ฅ ์์, maxvalue๋ ์๊ณ๊ฐ๋ณด๋ค ํด ๋ ์ ์ฉ๋๋ ์ต๋๊ฐ, adaptiveMethod๋ ์ ์ฉํ ์ง์ญ ์ด์งํ ์๊ณ ๋ฆฌ์ฆ, thesholdType์ ์๊ณ๊ฐ ์ ์ฉ ๋ฐฉ๋ฒ, blocksize๋ ์ง์ญ ์ด์งํ๋ฅผ ํ ๋ ๊ณ ๋ คํ ์ฃผ๋ณ ํฝ์ ํฌ๊ธฐ (๋ธ๋ก ํฌ๊ธฐ), C๋ ๋ธ๋ก ๋ด ํ๊ท ๊ฐ์์ ๋บ ๊ฐ(์๊ณ๊ฐ์ ๊ฒฐ์ ํ๋ ํ๋ผ๋ฏธํฐ)์ ์๋ฏธํ๋ค.

์ฌ๊ธฐ์ cv2.ADAPTIVE_THRESH_MEAN_C๋ ์ฃผ๋ณ ์์ญ์ ํ๊ท ๊ฐ์ผ๋ก ์ง์ญ ์ด์งํ๋ฅผ ํ๊ฒ ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.

๐ก ๋ธ๋ฌ๋ง (Blurring)
์ด์ ํฝ์ ๋ค์ ์ฐจ์ด๋ฅผ ๊ฐ์์์ผ ์์์ ๋ถ๋๋ฝ๊ฒ ๋ง๋๋ ๊ธฐ๋ฒ์ผ๋ก ์์์ ์ก์(Noise)์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ฐ์ธ๋ค.
๋ธ๋ฌ๋ง์ ์ฌ์ฉ๋๋ ํํฐ๋ก๋ ํ๊ท ๊ฐ ํํฐ, ๋ฏธ๋์ธ ํํฐ, ๊ฐ์ฐ์์ ํํฐ๊ฐ ์๋ค.
1๏ธโฃ ํ๊ท ๊ฐ ํํฐ
์์์ ํน์ ํฝ์ ๊ณผ ์ฃผ๋ณ ํฝ์ ๋ฑ์ ์ฐ์ ํ๊ท ์ ๊ฒฐ๊ณผ ์์ ํฝ์ ๊ฐ์ผ๋ก ์ค์ ํ๋ ํํฐ๋ก์จ ๊ฐ์ฅ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ธ๋ฌ๋ง ๋ฐฉ๋ฒ์ด๋ค. ํํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ๋ ํ๋ ค์ง๋ค.
1. 3 X 3 ํ๊ท ๊ฐ ํํฐ ์ฌ์ฉํ๊ธฐ


2. 5 X 5 ํ๊ท ๊ฐ ํํฐ ์ฌ์ฉํ๊ธฐ


5 X 5 ํ๊ท ๊ฐ ํํฐ๋ฅผ ์ฌ์ฉํ ์ ๋ ํ๋ ค์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค โ
2๏ธโฃ ๋ฏธ๋์ธ ํํฐ
์ ๋ ฅ ์์์์ ์ฃผ๋ณ ํฝ์ ๋ค์ ๊ฐ๋ค์ ์ค๋ฆ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ทธ ์ค์์ ์๋ ๊ฐ์ผ๋ก ํฝ์ ๊ฐ์ ๋์ฒดํ๋ ๋ฐฉ์์ ํํฐ๋ก ์๊ธ & ํ์ถ ์ก์์ ํจ๊ณผ์ ์ผ๋ก ์ ๊ฑฐํ๋ค.
โ cv2.medianBlur(src, ksize)
src๋ ์ ๋ ฅ ์์, ksize๋ ํํฐ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค. ํํฐ์ ํฌ๊ธฐ๋ 3,5,9๋ฅผ ๊ฐ์ง ์ ์๋ค.


3๏ธโฃ ๊ฐ์ฐ์์ ํํฐ
๊ฐ์ฐ์์ ๋ถํฌ๋ฅผ ์ด์ฉํ ์ ๊ทํ ํํฐ๋ก์จ ๋ชจ๋ ๊ฐ์ฐ์์ ํํฐ์ ํฉ์ 1์ด๋ค. ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.


3 X 3์ ๊ฐ์ฐ์์ ํํฐ์ 5 X 5์ ๊ฐ์ฐ์์ ํํฐ๋ฅผ ์ ์ฉํ์๋ค. ์์ธํ ๋ณด๋ฉด ํฌ๊ธฐ๊ฐ 5์ธ ํํฐ๊ฐ ๋ ํ๋ฆฌ๋ค.
โ cv2.getGaussianKernel(ksize, sigma, ktype)
๊ฐ์ฐ์์ ํํฐ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ํจ์๋ก์จ ksize๋ ํํฐ ํฌ๊ธฐ, sigma๋ ๊ฐ์ฐ์์ ํจ์ ์ ์ค ์๊ทธ๋ง ๊ฐ, ktype์ ํํฐ ํ์ ์ ์๋ฏธํ๋ฉฐ default ๊ฐ์ float64์ด๋ค.

๐ก ์คํ๋ (Sharpening)
์ด์ ํฝ์ ๋ค์ ์ฐจ์ด๋ฅผ ํฌ๊ฒ ๋ง๋ค์ด ์์์ ๋ ์นด๋กญ๊ฒ ๋ง๋๋ ๊ธฐ๋ฒ์ด๋ค.
์ด 3๊ฐ์ง์ ์คํ๋ ํํฐ๊ฐ ์กด์ฌํ๋ค.


์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก ๋์ฑ ์คํ๋ ๋ ์ฌ์ง์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'Image processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ฃ์ง ๊ฒ์ถ๊ณผ ํํ ๋ณํ (0) | 2021.03.12 |
|---|---|
| ๊ทธ๋ ์ด ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊ธฐ ์กฐ์ ํด๋ณด์ โ (0) | 2021.02.04 |
| ํ์์ ์๊ณต๊ฐ์ ๋ํด ์์๋ณด์ (0) | 2021.02.04 |