[Computer Vision] Pixel-wise Operation - Histogram equalization

2023. 3. 25. 14:36
๐Ÿง‘๐Ÿป‍๐Ÿ’ป Topic ์ •๋ฆฌ

- Arithmetic operation
- Image histogram
- Histogram stretch
- Histogram equalization

 

์ด๋ฒˆ์—” ์ˆ˜๋™์ด ์•„๋‹Œ ์ž๋™์œผ๋กœ image์˜ contrast๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ง€๋‚œ ์‹œ๊ฐ„, ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๊ฐ’์ด ๋ชฐ๋ ค์žˆ๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ Contrast๊ฐ€ ๋‚ฎ๋‚˜๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ด contrast๊ฐ€ ๋‚ฎ์€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋†’์—ฌ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์•ผ ๋” ์ข‹์€ image ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ ๋ฐฉ๋ฒ•์„ ์ž๋™์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์˜ค๋Š˜ ๋ฐฐ์šธ ๋‚ด์šฉ์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

Histogram Equlization

 

์ฃผ์–ด์ง„ input image์˜ gray level distribution์„ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ํ•œ uniformํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์„ histogram ํ‰ํ™œํ™”๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜ : https://cvexplained.wordpress.com/2020/08/26/histogram-equalization/

 

์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

๊ธฐ์กด ๊ฐ’์— ๋Œ€ํ•ด์„œ x์ถ•์€ 0 ~ 255์‚ฌ์ด์˜ ๊ฐ’์ด ๋˜๊ณ  ๊ทธ ๊ฐ’๋“ค์˜ ๋ถ„ํฌ๊ฐ€ histogram์œผ๋กœ ๊ทธ๋ ค์ง„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‚ฌ๋žŒ์˜ ๊ด€์—ฌ ์—†์ด ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ๋“ค์— ๋Œ€ํ•ด contrast๊ฐ€ ๋‚ฎ์€ ๊ฒƒ์„ contrast๊ฐ€ ๋†’๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

 

๋˜, ์ค‘์š”ํ•œ ๊ฒƒ์€,

 

input image์˜ pixel value๊ฐ€ ์ด์ƒ์ ์œผ๋กœ ์™„์ „ํžˆ ๊ท ์ผํ•˜๊ฒŒ ๋ฐ”๋€๋‹ค๋Š” ๊ฒƒ์ด๊ณ ,

 

์ด ๊ณผ์ •์—์„œ ์–ด๋– ํ•œ Transformation function์ด ํ•„์š”ํ•œ์ง€ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

์œ„ ๊ณผ์ •์„ ๋ด…์‹œ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ input pixel histogram์— ๋Œ€ํ•ด์„œ ๋” uniformํ•˜๊ฒŒ ๋ฐ”๊พธ์–ด contrast๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์œ„ ์ˆ˜์‹์—์„œ ๊ธฐ์กด์˜ pixel value r ๊ฐ’์— ๋Œ€ํ•ด Transformation function T๋ฅผ ์ง€๋‚˜ ์ƒˆ๋กœ์šด pixel value s๋ฅผ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ transformation function์„ ์ž˜ ์ฐพ์•„๋‚ด์„œ uniformํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค.

 

 

 

๋จผ์ €, ์ด ๊ฒฝ์šฐ์— ์žˆ์–ด Continuous case๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

  • histogram์„ probability density function์ธ PDF๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

 

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Transformation function์„ ํ†ตํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” uniformํ•œ function์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜ : https://en.wikipedia.org/wiki/Histogram_equalization

 

์ด๊ฒƒ์ด ๋ชฉ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฉด์ ์€ 1์ด๋ฉฐ, 0 ~ 255 ์‚ฌ์ด์˜ ๊ฐ’์ด 0 ~ 1 ์‚ฌ์ด์˜ ๊ฐ’, continuousํ•˜๋ฉฐ ๋„“์ด๊ฐ€ 1์ธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ์ด ๊ณผ์ •์ด Histogram equlization์ž…๋‹ˆ๋‹ค.

 

๋ฌด์Šจ๋ง์ผ๊นŒ์š”?

 

๊ทธ๋ž˜์„œ ์œ„ continuous case๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

 

๋จผ์ €, f_R(r)์˜ ๊ฐ’์€ ๋ฌด์—‡์ผ๊นŒ์š”?

 

์œ„ ์•„๋ž˜์ชฝ์— ๊ทธ๋ ค์ง„ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ดค์„ ๋•Œ, ๊ธฐ์กด image์— ๋Œ€ํ•ด์„œ r์˜ ๊ฐ’์˜ ๋ถ„ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ f_R(10) = 5๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, 0 ~ 255 ์ค‘ 10์˜ ๋ฐ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๊ฐ’์ด 5๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๋œป์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด histogram equalization์„ ๋งˆ์นœ ๊ฒฐ๊ณผ๋กœ f_S(s)๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ๊ธฐ์กด pixel vaule๋“ค์— ๋Œ€ํ•œ ๊ท ๋“ฑํ™”๊ฐ€ ์ด๋ฃจ์–ด์ ธ uniform์— ๊ฐ€๊นŒ์šด ๋ถ„ํฌ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ, ์ด f_S(s)์˜ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ๊ธฐ์กด pixel vaule์ธ r์ด ์•„๋‹Œ,

 

r์„ trasnformation function์„ ๊ฑฐ์นœ s = T(r)์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ, ์ด Transformation function์„ ๊ฑฐ์ณ์„œ old pixel value๋ฅผ new pixel value๋กœ ๋ฐ”๊ฟ”์ฃผ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋‹ค์‹œ ๋ด…์‹œ๋‹ค.

์•„๊นŒ ๋ถ„๋ช… 0 ~ 255์˜ histogram์„ ๋ณด์•˜๋Š”๋ฐ ์ด๊ฒƒ์€ 0 ~ 1์ž…๋‹ˆ๋‹ค.

 

๊ทธ์ € 255๋กœ ๋‚˜๋ˆˆ ๊ฒƒ ๋ฟ์ด๋‹ˆ ์ซ„ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์ขŒ์ธก์˜ ๋ถ„ํฌ๋ฅผ ์˜ค๋ฅธ์ชฝ์ฒ˜๋Ÿผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ด ์•„์ด๋””์–ด๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

์œ„ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ์˜ dr * f_R(dr) ๋ถ€๋ถ„๊ณผ f_S(ds) * ds ๋ถ€๋ถ„์„ ์ผ์น˜์‹œ์ผœ ๋‚˜๊ฐ€๊ฒ ๋‹ค๋Š” ๋œป์ด ๋ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ 0๋ถ€ํ„ฐ dr๊นŒ์ง€ ๊ฐ€๋ฉฐ f_R(r)์˜ ๊ฐ’์ธ ๋†’์ด ๋ถ€๋ถ„์ด ๊ณ„์† ์ปค์ง€๊ฒŒ ๋˜๊ฒ ์ฃ .

 

๊ทธ๋•Œ ๊ทธ ๋„“์ด์™€ 0๋ถ€ํ„ฐ ds๊นŒ์ง€ f_S(s)์˜ ๋„“์ด๊ฐ€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์ด 

 

์ฃผ์–ด์ง„ ์กฐ๊ฑด๋“ค์„ ์ด์šฉํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ f_R(r)์˜ ๊ฐ’์€ ๊ทธ pixel ๊ฐ’ r์—์„œ์˜ Transformation function์˜ ๋ฏธ๋ถ„๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” f_R(r) = ds/dr์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์ฆ‰ ds์— ๋Œ€ํ•œ dr์˜ ๋ณ€ํ™”๋Ÿ‰์ด f_R(r)์ด๋ผ๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

์ด ๊ฒƒ์„ ์ ๋ถ„ํ•˜๋ฉด,

 

old pixel value r์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด pixel value s์˜ ๊ฐ’์€, f_R(r)์˜ 0 ~ r๊นŒ์ง€์˜ ์ ๋ถ„ ๊ฒฐ๊ณผ, ์ฆ‰ histogram์˜ ๋„“์ด ๊ฒฐ๊ณผ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

 

 

pixel์—๋Š” ์Œ์˜ ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— 0 ~ r์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ์ด transformation function์€ monotonic increasing function์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด input image์˜ histogram์—๋Š” input์˜ ๊ฐ’์ด pixel ๊ฐ’์œผ๋กœ ๋‹ค์‹œ discreteํ•œ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ ์ด์œ ๋Š” ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์— ์žˆ์–ด์„œ ๊ฐ’๋“ค์€ ๋ชจ๋‘ ์—ฐ์†์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

 

 

  • ์ด ๊ณผ์ •์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€, Transformation function์€ Monotonic increasing function์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ฆ‰, ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๋ฉฐ ๋‚ฎ์•„์ง€๋Š” ๊ตฌ๊ฐ„์€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด๋ ‡๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” pixel ๊ฐ’ r์— ๋Œ€ํ•ด์„œ transformation function์„ ๊ตฌํ•˜์—ฌ ํ•ด๋‹น function์— ๋„ฃ์œผ๋ฉด ์ƒˆ๋กœ์šด pixel ๊ฐ’ s๋ฅผ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ๋˜ ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์›๋ž˜์˜ pixel ๊ฐ’์— ๋Œ€ํ•œ ๋นˆ๋„์— ๋Œ€ํ•œ ๊ฐ’์ด ๊ท ๋“ฑํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„ ํ›„ ์–ด๋–ค ๊ฐ’์— ๋งค์นญ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€์ด๋‹ค.

 

 

 

 

Histogram Equlization - Discrete approximation

 

 

1. histogram์„ ๊ตฌํ•œ๋‹ค.
 
2. histogram์„ ์ด ํ”ฝ์…€์ˆ˜๋กœ ๋‚˜๋ˆˆ๋‹ค.
 
3. ๋ˆ„์  ๋ถ„ํฌ(CDF)๋ฅผ ๊ตฌํ•œ๋‹ค.
 
4. ๋ˆ„์  ์‹œํ‚จ ๊ฐ’์— gray level์˜ ์ตœ๋Œ“๊ฐ’(255)์„ ๊ณฑํ•œ๋‹ค.
 
5. ๋ฐ˜์˜ฌ๋ฆผ ๋˜๋Š” ๋ฒ„๋ฆผ์„ ํ•˜์—ฌ ์ •์ˆ˜๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
 
6. ๊ตฌํ•ด์ง„ ์ •์ˆ˜๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ histogram equailization ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
 
 
์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฐ€์ง„๋‹ค.

์œ„ ๊ณผ์ •์—์„œ, ์šฐ๋ฆฌ๋Š” histogram์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

๋ชฉ์ ์ƒ exactly uniform output์„ ๊ฐ€์ง€๋ ค ํ–ˆ์ง€๋งŒ ์ •ํ™•ํ•˜๊ฒŒ ์–ป์–ด์ง€์ง€๋Š” ์•Š๋Š”๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด automatically ํ•˜๊ฒŒ ๊ณ„์‚ฐ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

 

 

๊ฒฐ๊ตญ Histogram equlization์˜ ๋ชฉ์ ์€,

 

๋„ˆ๋ฌด ๋‚ฎ๊ฑฐ๋‚˜ ๋†’์€ Pixel ๋ถ„ํฌ์— ๋ชฐ๋ ค ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋„“๊ฒŒ ํŽด์„œ ๋” ์ข‹์€ ๋Œ€๋น„์˜ Image๋ฅผ ์–ป๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ๋‹ค.

 

 

 

 

 

 

BELATED ARTICLES

more