Artificial Intelligence/Computer Vision

[Computer Vision] Pixel-wise Operation - Histogram stretching

Han Jang 2023. 3. 25. 01:50
๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Topic ์ •๋ฆฌ

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

 

์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ ์ค‘ Pixel-wise operation์„ ์œ„์™€ ๊ฐ™์€ ์ฐจ๋ก€๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

Arithmetic operation

์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์‹์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ํ†ตํ•ด image๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€๋ฅผ ์‚ดํ•๋‹ˆ๋‹ค.

 

input image๊ฐ€ I, output image๊ฐ€ O์ผ ๋•Œ,

 

f๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ–ˆ์„ ๋•Œ ์ƒˆ๋กœ์šด image O๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

intensity๋Š” ํ‘๋ฐฑ image์—์„œ pixel ๊ฐ’์œผ๋กœ ๋งŽ์ด ์“ฐ์ž…๋‹ˆ๋‹ค.

 

pixel์€ uint8 ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—,

  • Input pixel intensity I -> Output pixel intensity O
    • O = f(I)
    • I : input intensity
    • O : Output intensiry
    • f(I) = I + 128 or f(I) = I - 128

 

์•„๋ž˜ 128์„ ๋”ํ•˜๊ณ  ๋นผ๋Š” ์‹์˜ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ƒฅ 0๋ถ€ํ„ฐ 255๊นŒ์ง€์˜ lienar graph๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ’์— ๋Œ€ํ•ด ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

pixel ๊ฐ’์€ uint8 ์ž๋ฃŒํ˜•์œผ๋กœ 0 ~ 255๋กœ ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ x์ถ•์˜ ๊ฐ’๋“ค์— ๋Œ€ํ•ด 128์„ ๋”ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด output pixel ๊ฐ’๋“ค์ด 255๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋ชจ๋‘ 255๋กœ ๊ฐ’์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

 

์šฐ์ธก ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์Œ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” pixel ๊ฐ’์€ ์—†์œผ๋‹ˆ ์Œ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์€ ๋ชจ๋‘ 0์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ, ๊ฐ’์„ ํ‚ค์šฐ๊ฒŒ ๋˜๋ฉด ๋ฐ์•„์ง€๊ณ , ๊ฐ’์ด ์ค„์–ด๋“ค๋ฉด ์–ด๋‘์›Œ์ง‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์ด์™ธ์—๋„ multiplication and division์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ทธ๋ž˜ํ”„๋Š” x์ถ•๊ณผ y์ถ•์ด ์œ„์˜ ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ์ž˜ ์‚ดํŽด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ๊ฒƒ์€ pixel์ด ๋ฐ˜์œผ๋กœ ์ค„์—ˆ๊ธฐ์— ์–ด๋‘์›Œ์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ๊ฒƒ์€, pixel์ด 2๋ฐฐ ์ปค์กŒ์œผ๋ฏ€๋กœ ๋ฐ์•„์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ ๊ฒƒ์€,

์ „๋ฐ˜์ ์œผ๋กœ ๋ฐ์•„์ง€๋˜, ์ฃผ๋ณ€ pixel ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ ์ž‘์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์žˆ์–ด์„œ ๋Œ€๋น„๊ฐ€ ์ž‘๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋Œ€๋น„๋Š” ์–ด๋–ค pixel ๊ฐ’ ๊ธฐ์ค€ ์ฃผ๋ณ€๊ฐ„์˜ pixel ๊ฐ’์— ๋Œ€ํ•œ ๋ฐ๊ธฐ ๊ฐ’ ์ฐจ์ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋‚˜๋ƒ๋ฅผ ๋งํ•˜๋Š” ์ง€ํ‘œ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋งŽ์ด ์ฐจ์ด๊ฐ€ ๋‚˜๋ฉด ๋Œ€๋น„๊ฐ€ ๋†’๋‹ค, ์ฐจ์ด๊ฐ€ ๋ณ„๋กœ ๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋Œ€๋น„๊ฐ€ ๋–จ์–ด์ง„๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

 

 

๋ฐ๊ธฐ์— ๋Œ€ํ•œ ์ฐจ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•œ ๋ˆˆ์— ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋Œ€๋น„์— ๋Œ€ํ•ด์„œ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ฐจ์ด๋ฅผ ํ†ตํ•ด ์•Œ์•„๋‚ผ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ˜์ „์„ ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ , Complements๋ฅผ ํ†ตํ•ด์„œ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • type double (0.0 ~ 1.0)
    • 1 - x
  • type uint8 (0 ~ 255)
    • 255 - x

์ด๋ ‡๊ฒŒ ๋ฐ˜์ „์„ ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ธดํ•˜๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งŽ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

 

pixel ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ non-linearํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊นŒ์ง€ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ž˜์„œ image๊ฐ€ ์žˆ์„ ๋•Œ, ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด image๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€”์ง€์— ๋Œ€ํ•ด์„œ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์™ผ์ชฝ ์ƒ๋‹จ์˜ image๊ฐ€ original image์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ชจ๋“  pixel์˜ ๊ฐ’์„ ๊ทธ์ € ๋ญ‰๋œฝ๊ทธ๋ ค์„œ x๋ผ๊ณ  ํ‘œํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์œ„์—์„œ I๋ผ๊ณ  ํ–ˆ๋˜ ๊ฒƒ์„ x๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง€๋ฉด ๊ฐ’์ด ์ž‘์•„์งˆ์ˆ˜๋ก ์ „๋ฐ˜์ ์œผ๋กœ ์–ด๋‘์›Œ์ง€๊ณ , ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ์ „๋ฐ˜์ ์œผ๋กœ ๋ฐ์•„์ง€๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

 

x/2 ๋ฅผ ๋ด…์‹œ๋‹ค.

 

๋ฐฐ๊ฒฝ๊ณผ ์ด๋งˆ๋ฅผ ๋ดค์„ ๋•Œ, ๋ฐ๊ธฐ ์ฐจ์ด๊ฐ€ original์ด ๋” ๋งŽ์ด ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค๊ณ  ๋А๊ปด์ง‘๋‹ˆ๋‹ค.

 

ํ™•์‹คํžˆ x/2 ๋ถ€๋ถ„์ด ๋” ์ฐจ์ด๊ฐ€ ๋‚ฎ์•„์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ด๋ ‡๊ฒŒ ๋ ๊นŒ์š”?

 

์œ„์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ด…์‹œ๋‹ค.

 

x์ถ•์ด old value, y์ถ•์ด new value๋กœ ๋ด…์‹œ๋‹ค.

 

์ž„์˜๋กœ y = x๋ผ๋Š” ๊ธฐ์ค€์„ ๋„ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐฐ๊ฒฝ๊ณผ ์‚ด๊ตฌ์ƒ‰ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐฐ๊ฒฝ Pixel ๊ฐ’์ด ๋งค์šฐ ๋ฐ์œผ๋‹ˆ 255๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , original image์— ๋Œ€ํ•œ ์‹์ด x์— ๋Œ€ํ•œ ์‹์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐฐ๊ฒฝ์ธ 255 ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์‚ด๊ตฌ์ƒ‰์„ 128 ์ •๋„๋กœ ๋‚˜ํƒ€๋‚ด๋ด…์‹œ๋‹ค.

 

์ด ๋‘ ์ˆ˜์˜ ์ฐจ์ด๋Š” 255 - 128 = 127 ์ •๋„๊ฐ€ ๋œ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

 

์ด๊ฒƒ์€ original image์— ๋Œ€ํ•ด์„œ ํ•ด๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด์ œ x/2์— ๋Œ€ํ•ด ํ•ด๋ณธ๋‹ค๋ฉด,

 

128 - 64 = 64 ์ •๋„๋กœ ์‹ค์ œ๋กœ ๋ฐ๊ธฐ ์ฐจ์ด๊ฐ€ ์ž‘์•„์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์ด ์ฐจ์ด ๊ตฌ๊ฐ„์ด ํ™•์—ฐํžˆ ์ค„์–ด๋“  ๊ฒƒ์ด ๋ณด์ž…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ฃผ๋ณ€ pixel ๊ฐ’ ์ฐจ์ด๊ฐ€ ์ค„์–ด๋“  ๊ฒƒ์ด ๋ณด์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ „๋ฐ˜์ ์œผ๋กœ contrast๊ฐ€ ๋‚ฎ์•„์ง„ ๊ฒƒ์ด ๋ณด์ด๋Š” ๊ฒƒ์ด๊ฒ ์ฃ .

 

๊ทธ๋ž˜์„œ ์•„๋ฌด ๊ตฌ๊ฐ„์ด๋‚˜ ๋‹ค ์ฐ์–ด๋„ pixel ๊ฐ’ ์ฐจ์ด๊ฐ€ ์ค„์–ด๋“œ๋Š” ํ˜„์ƒ์ด ์ผ์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ ‡๋‹ค๋ฉด y = 2x์™€ y = x์— ๋Œ€ํ•ด์„œ๋„ ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ pixel์€ 255๋ณด๋‹ค ํฐ ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋А ๊ตฌ๊ฐ„ ์ด์ƒ์—์„œ๋Š” 255๋กœ ์œ ์ง€๋˜๊ฒ ์ฃ .

 

๊ทธ๋ž˜์„œ y = 2x์— ๋Œ€ํ•ด์„œ ๋ชจ๋“  ๊ตฌ๊ฐ„์— ๋Œ€ํ•ด contrast๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋ฐฐ๊ฒฝ์€ ๋” ์˜ฌ๋ผ๊ฐˆ ๊ณณ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ๊ธฐ๊ฐ€ ๊ทธ๋Œ€๋กœ์ธ๋ฐ, ์˜คํžˆ๋ ค ์‚ด๊ตฌ์ƒ‰์ด ๋ฐ๊ธฐ๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ ๋ฐฐ๊ฒฝ๊ณผ ์‚ด๊ตฌ์ƒ‰ ๊ฐ„์˜ ๋Œ€๋น„๊ฐ€ ๋‚ฎ์•„์ง€๋Š” ํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์˜คํžˆ๋ ค ๋ˆˆ๊ณผ ์‚ด๊ตฌ์ƒ‰ ์‚ฌ์ด์—๋Š” ์ฐจ์ด๊ฐ€ ๋” ๋ช…ํ™•ํ•ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ „๋ฐ˜์ ์œผ๋กœ๋Š” ๋Œ€๋น„๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์›๋ž˜ image๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ pixel ๊ฐ’์— ๋”ฐ๋ผ์„œ ๊ตฌ๊ฐ„ ๋งˆ๋‹ค contrast๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜๊ฐ€ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

์ขŒ์ธก ์‚ฌ์ง„์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ๋ด…์‹œ๋‹ค.

 

์ด๊ฒƒ์„ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ฃ .

 

์ฒซ ์‚ฌ์ง„์€ ์ „๋ฐ˜์ ์œผ๋กœ ๋ฐ์•„์ง„ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

 

์›๋ž˜ y = x์™€ ์ขŒ์ธก ์‹๊ณผ ๋น„๊ตํ•ด๋ณด๋ฉด, ๋Œ€๋น„๊ฐ€ non-linearํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋ฉฐ ๋Œ€๋น„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํŒŒ๋ž€์ƒ‰ ๊ทธ๋ž˜ํ”„๋Š” ์•„๋ž˜ ์‚ฌ์ง„์— ๋Œ€ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋Œ€๋น„์— ๋Œ€ํ•œ ์ฐจ์ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋Œ€๋น„๋Š” ์ฃผ๋ณ€๊ฐ„์˜ pixel ์ฐจ์ด๋ฅผ ๋งํ•˜์ฃ .

 

์—ฌ๊ธฐ์„œ๋„ ๋Œ€๋น„๊ฐ€ ๋–จ์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ข์€ range ์•ˆ์— pixel value๋“ค์ด ๋ชฐ๋ ค ์žˆ๋Š” ๊ฒฝ์šฐ, Contrast๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ, Low-contrast image๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , intensity๊ฐ€ ๋‚ฎ์€ ์ชฝ์— ๋ชฐ๋ ค ์žˆ์œผ๋ฉด, Dark image, ๋†’์€ ์ชฝ์— ๋ชฐ๋ ค์žˆ์œผ๋ฉด Bright image๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ , ๊ณจ๊ณ ๋ฃจ ํผ์ ธ์žˆ์œผ๋ฉด ์—ฌ๊ธฐ์„œ Contrast๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋†’๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ, High-contrast image๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

Contrast๋ž€ ๋™์ผํ•œ ์‹œ์•ผ ๋‚ด์—์„œ ๋ฌผ์ฒด๋ฅผ ๋‹ค๋ฅธ ๋ฌผ์ฒด์™€ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ํœ˜๋„ ๋˜๋Š” ์ƒ‰์ƒ์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

 

Contrast๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์€ ์ด๋ฏธ์ง€์˜ ํ”ฝ์…€ ๊ฐ’์˜ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ ํฌ๋ฉด์„œ ํ”ฝ์…€๋“ค์˜ ๋ถ„ํฌ๊ฐ€ ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ๋œ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€์กฐ๋น„๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์„ ๋ช…ํ•œ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

 

 

Image histogram

 

๊ฐ intensity value๊ฐ€ ์ด๋ฏธ์ง€ ์ƒ์—์„œ ์–ผ๋งˆ๋‚˜ ๋‚˜ํƒ€๋Š”์ง€๋ฅผ ๋ณธ๋‹ค.

 

์ง€๊ธˆ๋ถ€ํ„ฐ gray level์— ์žˆ๋Š” range์— mapping ํ•˜๋Š” histogram์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด image histogram์€ ์ด 256๊ฐœ์˜ ์ข…๋ฅ˜์˜ pixel ๊ฐ’์— ๋Œ€ํ•ด์„œ ์–ผ๋งˆ๋งŒํผ์˜ ๋นˆ๋„๋กœ ์ด๋ฏธ์ง€์—์„œ ๋‚˜ํƒ€๋‚˜๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์–ด๋‘์šด ๊ฒƒ์€ ๋‚ฎ์€ ๋ถ€๋ถ„์— ๋ถ„ํฌํ•  ๊ฒƒ์ด๊ณ , ๋ฐฐ๊ฒฝ์˜ ํ•˜์–€์ƒ‰ ๊ฐ€๊นŒ์šด ๊ฒƒ์€ ์ƒ๋Œ€์ ์œผ๋กœ ์กฐ๊ธˆ ๋†’์€ ๋ถ€๋ถ„์— ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ contrast์™€ ํ•จ๊ป˜ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์•„๋ž˜ ์—ฌ๋Ÿฌ ์˜ˆ์‹œ๋“ค์ด ์žˆ์ฃ .

 

pixel ๊ฐ’์˜ ๋ถ„ํฌ๋ฅผ ๋ณด์•˜์„ ๋•Œ, ์–ด๋‘์šด ๊ฒƒ, ๋œ ์–ด๋‘์šด ๊ฒƒ, ๋ฐ์€ ๊ฒƒ, original ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์–ด๋‘์šด image์— histogram์„ ๊ทธ๋ ค๋ณด๋ฉด ๋‚ฎ์€ pixel์˜ ๋ถ€๋ถ„์— pixel ๊ฐ’๋“ค์ด ๋ชฐ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ pixel์ด ๋ชฐ๋ ค ์žˆ์œผ๋ฏ€๋กœ contrast๊ฐ€ ๋‚ฎ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

3๊ฐœ์˜ pixel์ด ๋ชฐ๋ ค์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์šฐ์ธก ํ•˜๋‹จ์€ pixel ๊ฐ’์ด ํผ์ ธ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋” contrast๊ฐ€ ๋†’๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ€์žฅ ์ข‹์€ image๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ contrast๊ฐ€ ๋–จ์–ด์ง€๋Š” Image์— ๋Œ€ํ•ด ๋Œ€๋น„๋ฅผ ์˜ฌ๋ฆฌ๊ณ  image๋ฅผ ๊ฐœ์„ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

 

Histogram Stretching

 

์•„๋ž˜ ๋ช‡ ๊ฐœ์˜ ๊ฐ pixel์— ๋Œ€ํ•ด ๋ถ„ํฌ๋ฅผ ๋ฐ”๊ฟ”๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ pixel ๊ฐ’ i๊ฐ€ ์กด์žฌํ•˜๊ณ , ๊ฐ pixel ๊ฐ’๋งˆ๋‹ค ๋ช‡ ๋ฒˆ์„ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚˜๋Š” n_i๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ˆ์‹œ์—์„œ pixel์ด ๋ชฐ๋ ค ์žˆ์œผ๋ฏ€๋กœ, contrast๊ฐ€ ๋‚ฎ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ 5์™€ 9์— ๋Œ€ํ•œ ๊ฐ’์„ ์ ๋‹นํžˆ ์ขŒ์šฐ๋กœ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐœ๋งŒ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ๋ณ„๋กœ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋‹ˆ,

 

์‚ฌ์ด 6,7,8์„ ์˜ฎ๊ฒจ์ฃผ๊ณ  ์‹ถ์€๋ฐ, ์ด๊ฒƒ์„ ์ƒํ™ฉ์„ ๋ชจ๋‘ ์ง€์ •ํ•ด์„œ ๋ฐ”๊พธ๋Š” ๋ฐ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์œผ๋‹ˆ linearํ•˜๊ฒŒ ์˜ˆ์ธก์„ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ 5๋ฅผ 2๋กœ, 9๋ฅผ 14๋กœ ๋ฐ”๊พธ์–ด ํ•ด๋‹น ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜์—ฌ linear function์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ง์„ ์‹์„ ๊ตฌํ•œ ๊ฒƒ์€ ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ,

 

์ถœ์ฒ˜ : https://staff.fnwi.uva.nl/r.vandenboomgaard/ComputerVision/LectureNotes/IP/PointOperators/ImageStretching.html

 

์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ผ๋ช… "histogram stretching"์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๋น„๋ฅผ ๋†’์ผ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋‘ ๊ฐœ๋ฅผ ์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ๊ทผ์‚ฌํ™”ํ•ด์„œ ์ฐ์–ด์ค๋‹ˆ๋‹ค.

 

range์— ๋ชฐ๋ ค์žˆ๋Š” ๊ฐ’๋“ค์— ๋Œ€ํ•ด ์„ ํ˜• ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

์ง์„ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์  ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ชจ๋‘ ์ฐ์œผ๋ฉด ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‹ˆ, ๋‘ point๋ฅผ ์žก๊ณ  ํ•ด๋‹น ๊ฐ’์— ๋Œ€ํ•œ linear ์‹์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 

๋‘ ์ ๋งŒ ์ •ํ•ด์ฃผ๋ฉด, ์ค‘๊ฐ„์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋‘ ์ ์— ์˜ํ•œ linear equ.์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

 

 

์ถœ์ฒ˜ : https://theailearner.com/2019/01/30/contrast-stretching/

 

 

 

๋ฐฉ๋ฒ•์ด ๊ฐ„๋‹จํ•œ๋งŒํผ ๊ฒฐ๊ณผ๋„ ๊ทน์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‘ ์ ์„ ๊ณ ๋ฅด๋Š” ๊ณผ์ •์— ์‚ฌ๋žŒ์˜ ์ž‘์—… ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ด๊ฒƒ์€ histogram ๊ธฐ๋ฐ˜์€ ์•„๋‹ˆ์ง€๋งŒ, ๊ฐ’์„ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ๋„ฃ์–ด์คŒ์— ๋”ฐ๋ผ์„œ image์˜ contrast๋ฅผ ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ๋Š” ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ Gamma correction์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ผ๋ฐ˜ํ™” ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜ : https://www.researchgate.net/figure/Gamma-correction-curve-for-different-values-of-gdocumentclass12ptminimal_fig2_329571120

์ด gamma์˜ ๊ฐ’์ด 1๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ์•„์ง€๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , 1๋ณด๋‹ค ํฌ๋ฉด ์ƒ๋Œ€์ ์œผ๋กœ ๋” ์–ด๋‘์›Œ์ง€๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ ๋˜ํ•œ gamma ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ์‚ฌ๋žŒ์ด ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํ˜„์žฌ, gamma๋ฅผ ํ•™์Šตํ•˜์—ฌ ๊ฐ€์žฅ ์ตœ์ ์˜ gamma๋ฅผ ์ฐพ๋Š” ์—ฐ๊ตฌ๋„ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค.

 

 

 

๊ฒฐ๋ก ์€ histogram stretching์€ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ์ž๋™ํ™” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ๊นŒ์š”?

 

 

 

๋ณธ Computer Vision ํ•ญ๋ชฉ์€ ์ถฉ๋‚จ๋Œ€ํ•™๊ต ์˜์ƒ์ฒ˜๋ฆฌ ๊ณผ๋ชฉ์˜ ๋ฆฌ๋ทฐ์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œ๊ฐ€ ๋  ์‹œ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.