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

[์˜์ƒ์ฒ˜๋ฆฌ] ์ค‘๊ฐ„๊ฐ’ ํ•„ํ„ฐ, ์œค๊ณฝ์„  ๊ฒ€์ถœ

ruhz 2020. 10. 18. 16:06

๋น„์„ ํ˜• ํ•„ํ„ฐ (Non-Linear Filter)

๋น„์„ ํ˜• ํ•„ํ„ฐ์—๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ์ตœ๋Œ€๊ฐ’ ํ•„ํ„ฐ, ์ตœ์†Œ๊ฐ’ ํ•„ํ„ฐ, ์ค‘๊ฐ„๊ฐ’ ํ•„ํ„ฐ๊ฐ€ ์žˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€์˜ ํ”ฝ์…€๊ฐ’์„ ๊ฒฐ์ •ํ•  ๋•Œ, ์›๋ณธ์ด๋ฏธ์ง€์—์„œ ์ปค๋„ ์‚ฌ์ด์ฆˆ ์•ˆ์˜ ํ”ฝ์…€ ์ค‘, ์ตœ๋Œ€๊ฐ’/์ตœ์†Œ๊ฐ’/์ค‘๊ฐ„๊ฐ’์œผ๋กœ ํ”ฝ์…€๊ฐ’์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์€ ์ฝ”๋“œ์™€ ๊ฐ๊ฐ์˜ ๊ฒฐ๊ณผ์ด๋‹ค.

 

 

์ตœ๋Œ€/์ตœ์†Œ๊ฐ’ ํ•„ํ„ฐ (Maximum/Minimum Filter)

์ตœ๋Œ€, ์ตœ์†Œ๊ฐ’ ํ•„ํ„ฐ๋Š” ๊ทน๋‹จ์ ์ธ ์ž„ํŽ„์Šค(์—ฌ๊ธฐ์„œ๋Š” ํ˜ผ์ž ํŠ€์–ด๋‚˜์˜จ ๊ฐ’ ์ •๋„๋กœ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž) ์žก์Œ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์•„๋ฌด๋ž˜๋„, ์ตœ๋Œ€๊ฐ’ ํ•„ํ„ฐ๋Š” ๋ช…๋„ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ๊ณ ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์€ ๋ถ€๋ถ„์ด ํ™•์žฅ๋˜๊ณ , ์ตœ์†Œ๊ฐ’ ํ•„ํ„ฐ๋Š” ์–ด๋‘์šด ๋ถ€๋ถ„์ด ํ™•์žฅ๋  ๊ฒƒ์ด๋‹ค. ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๋” ๊ทน๋ช…ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ด์•ผ ํ•˜๋Š” ์˜๋ฃŒ ์˜์ƒ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

์›๋ณธ, max, min ์ˆœ์„œ. ์ฝ”๋“œ๋Š” ํŽ˜์ด์ง€ ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

 

 

์ค‘๊ฐ„๊ฐ’ ํ•„ํ„ฐ (Median Filter)

์ค‘๊ฐ„๊ฐ’ ํ•„ํ„ฐ๋Š” ์ตœ๋Œ€/์ตœ์†Œ๊ฐ’ ํ•„ํ„ฐ์— ๋น„ํ•ด, ๋…ธ์ด์ฆˆ๋ฅผ ์—†์• ๊ณ  ์ด๋ฏธ์ง€์˜ ๊ตฌ์กฐ๋ฅผ ์ง€ํ‚ค๋Š”๋ฐ์— ํ›จ์”ฌ ํšจ๊ณผ๊ฐ€ ์ข‹๋‹ค. ๊ธฐ์กด์˜ ํ”ฝ์…€๊ฐ’๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ด์ ๋„ ์žˆ๋‹ค. ์•„๋ž˜ ๊ฒฐ๊ณผ์—์„œ๋„, ์ปต์— ๋น„์นœ ์กฐ๋ช…๋“ค ์ค‘ ์ž‘์€ ๊ฒƒ๋“ค์€ ์‚ฌ๋ผ์กŒ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

 

์›๋ณธ, median. ์ฝ”๋“œ๋Š” ํŽ˜์ด์ง€ ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

 

 

์œค๊ณฝ์„  ๊ฒ€์ถœ (Edge Detection)

์œค๊ณฝ์„ ์€ ์˜์ƒ์ฒ˜๋ฆฌ์˜ ๊ด€์ ์—์„œ ๋ดค์„ ๋•Œ, ํ”ฝ์…€์˜ ๊ฐ’์ด ์ด์›ƒ ํ”ฝ์…€๋“ค๊ณผ ์กฐ๊ธˆ ๋‹ค๋ฅธ ํ”ฝ์…€์ด๋‹ค. ์œค๊ณฝ์„ ์€ ์ด๋ฏธ์ง€์˜ ๋Œ€ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•˜๋Š” '์ปดํ“จํ„ฐ ๋น„์ „' ๋ถ„์•ผ์—์„œ๋„ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” ๊ณต๊ฐ„ ํ•„ํ„ฐ(Spatial Filter)๊ฐ€ ์œค๊ณฝ์„ ์„ ๊ฒ€์ถœํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € ์–ด๋–ค ๊ฒƒ๋“ค์ด ์œค๊ณฝ์„ ์„ ๋งŒ๋“œ๋Š”์ง€, ํ‰์†Œ์— ์šฐ๋ฆฌ๊ฐ€ ๋‘ ๋ˆˆ์œผ๋กœ ๋ณผ ๋•Œ๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์•Œ์•„๋ณด์ž. 

  • ์งˆ๊ฐ(texture) : ๋ฌผ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋น›์„ ๋ฐ˜์‚ฌํ•˜๋Š”์ง€๋ฅผ ๋ณด๊ณ  ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ชจ์–‘(shape) : ๋ฌผ์ฒด์˜ ํ‘œ๋ฉด์ด ์–ด๋–ป๊ฒŒ ์ด์–ด์ ธ์žˆ๋Š”์ง€๋ฅผ ๋ณด๊ณ  ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด(object) : ์ด๋ฏธ์ง€์˜ ๊นŠ์ด๋ฅผ ๋ณด๊ณ , ๊ฒน์ณ์ ธ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์ด ๊ฒƒ์„ ์˜์ƒ์ฒ˜๋ฆฌ์˜ ๊ด€์ ์—์„œ ๊ฒ€์ถœํ•ด ๋‚ด๋ฉด ๋œ๋‹ค.

์–ด๋–ค ์ด๋ฏธ์ง€์—์„œ ์œค๊ณฝ์„ ์„ ํ™•๋Œ€ํ•ด ๋†“์€ ๊ทธ๋ฆผ์ด๋‹ค. ๊ทธ๋ฆผ์—์„œ ๋นจ๊ฐ„์ค„๋กœ ํ‘œ์‹œํ•ด๋†“์€ ํ•˜๋‚˜์˜ ํ–‰์„ ๋ดค์„ ๋•Œ, ๋ช…๋„๋Š” ๊ฐ€์šด๋ฐ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. [ํ•˜์–€์ƒ‰ → ํšŒ์ƒ‰ ๊ฒ€์ •์ƒ‰ ํšŒ์ƒ‰ ํ•˜์–€์ƒ‰]. ์ด ๊ทธ๋ž˜ํ”„์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋ณด๋ฉด ํ•˜์–€์ƒ‰์—์„œ ๊ฒ€์ •์ƒ‰์œผ๋กœ, ํ˜น์€ ๊ฒ€์ •์ƒ‰์—์„œ ํ•˜์–€์ƒ‰์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์—์„œ ๊ธฐ์šธ๊ธฐ๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ฐ์†Œํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ ์ด ๋ถ€๋ถ„์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฒ€์ถœํ•ด ๋‚ด์•ผํ•˜๋Š” ์œค๊ณฝ์„  ๋ถ€๋ถ„์ด๋‹ค!

๊ธฐ์šธ๊ธฐ(Gradient) ๊ฐ’์€, x ์„ฑ๋ถ„(์ˆ˜ํ‰ ๋ฐฉํ–ฅ), y ์„ฑ๋ถ„(์ˆ˜์ง ๋ฐฉํ–ฅ)์œผ๋กœ ๋‚˜๋ˆ  ๊ฐ๊ฐ ๋ฏธ๋ถ„ํ•ด ์–ป์„ ๊ฒƒ์ด๋‹ค. ๋งˆ์Šคํฌ ๋ฐฐ์—ด์„ ์ด๋ฏธ์ง€์— ์ปจ๋ฒŒ๋ฃจ์…˜ํ•˜์—ฌ ์ด ๊ณผ์ •์„ ์‹คํ–‰ํ•œ๋‹คใ…ก์ด ๋•Œ ์ด๋ฅผ ์‹คํ–‰ํ•ด์ค„ ๋งˆ์Šคํฌ์— ๋”ฐ๋ผ์„œ ์กฐ๊ธˆ์˜ ํŠน์ • ํ”ฝ์…€์— ๋ฏธ๋ถ„๊ณผ ๋™์‹œ์— ๋” ๊ฐ€์ค‘์น˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ•„ํ„ฐ์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ ๋งํฌ์— ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค.

 

์œค๊ณฝ์„  ๊ฒ€์ถœ(Edge Detection) ์—์ง€ ๋””ํ…์…˜

์˜์ƒ์—์„œ ์œค๊ณฝ์„  ๊ฒ€์ถœ(Edge Detection)์ด ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด์ž 1. ์œค๊ณฝ์„ &์œค๊ณฝ์„  ๊ฒ€์ถœ(Edge & Edge Detection ) Edge๋Š” ๊ฒฝ๊ณ„์„ , ์œค๊ณฝ์„ ์„ ์˜๋ฏธํ•œ๋‹ค. ์˜์ƒ์—์„œ์˜ edge๋ž€ ์˜์ƒ์˜ ๋ฐ๊ธฐ๊ฐ€ ๋‚ฎ์€ ๊ฐ’์—์„œ

iskim3068.tistory.com

 


์ด์ œ ํ”ฝ์…€ (x, y)์—์„œ ์ˆ˜ํ‰๋ฐฉํ–ฅ ๊ธฐ์šธ๊ธฐ h, ์ˆ˜์ง๋ฐฉํ–ฅ ๊ธฐ์šธ๊ธฐ v๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฒกํ„ฐํ•ฉ์œผ๋กœ ๋‘˜์„ ๋”ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ˜„์žฌ ์œค๊ณฝ์„ ์ด ์–ด๋””์ธ์ง€, ์œค๊ณฝ์„ ์˜ ๋ฐ”๊นฅ๋ฐฉํ–ฅ์ด ์–ด๋””์ธ์ง€(๋ฒกํ„ฐ์˜ ๋ฐฉํ–ฅ), ์œค๊ณฝ์„ ์˜ ๊ฐ•๋„(๋ฒกํ„ฐ์˜ ํฌ๊ธฐ)๋Š” ์–ด๋Š์ •๋„์ธ์ง€ ๋ชจ๋‘ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์œ„์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋˜ ํ•„ํ„ฐ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜์ž๋ฉด, ์ง€๊ธˆ ์„ค๋ช…ํ•œ ๋ฐฉ์‹์€ 1์ฐจ ๋ฏธ๋ถ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•œ ๊ฒƒ์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” Sobel ํ•„ํ„ฐ๊ฐ€ ์žˆ๋‹ค. Sobel ํ•„ํ„ฐ๋Š” ๋ชจ๋“  ๋ฐฉํ–ฅ์˜ ์—์ง€๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ณ , ์žก์Œ์— ๊ฐ•ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ์œค๊ณฝ์„ ์„ ์ถ”์ถœํ•˜๋ฉด, ์˜คํžˆ๋ ค ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•œ ๊ฒƒ์ด 2์ฐจ ๋ฏธ๋ถ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด ์—ญ์‹œ, ์ง์ ‘ ๋ณต์žกํ•˜๊ฒŒ ๋ฏธ๋ถ„ํ•  ํ•„์š”์—†์ด ์ •ํ•ด์ง„ ๋งˆ์Šคํฌ๋ฅผ ์ปจ๋ฒŒ๋ฃจ์…˜ํ•˜๋ฉด ๋œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ 2์ฐจ ๋ฏธ๋ถ„ ํ•„ํ„ฐ๋กœ๋Š” ๋ผํ”Œ๋ผ์‹œ์•ˆ์ด ์žˆ๋‹ค. 

 

 

์ฝ”๋“œ

 

ruhz3/ImgProcessing

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

github.com