๐Ÿ“˜ Programming/OpenCV

[์˜์ƒ ์ฒ˜๋ฆฌ] ํ™”์†Œ ์  ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ• (Null, ๋ฐ˜์ „, ๊ฐ๋งˆ ๋ณด์ •, ์ŠคํŠธ๋ ˆ์นญ, ์••์ถ•, ํฌ์Šคํ„ฐ๋ผ์ด์ง•, ์ด์ง„ํ™”, ๋ฒ”์œ„ ๊ฐ•์กฐ)

ํ•œ์ฝ”๋”ฉ 2020. 12. 29. 22:50
728x90
728x90

ํ™”์†Œ ์  ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•

๋ช…์•” ๋ณ€ํ™˜(Intensity Transform)์€ ๋ฐ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ์ง€์ •๋œ ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…๋ ฅ ์˜์ƒ์˜ ์ด์ „ ํ™”์†Œ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์žฌํƒ„์ƒ ์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

โ€‹

์ผ๋ฐ˜ํ™”๋œ ์‹

Output(q) = T [Input(p)]

โ€‹

p : ์ž…๋ ฅ ์˜์ƒ์˜ ํ™”์†Œ ๊ฐ’

T : ํ™”์†Œ ๊ฐ’์€ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

q : ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜์—ฌ ์–ป๋Š” ์ถœ๋ ฅ ํ™”์†Œ ๊ฐ’

โ€‹

ํ™”์†Œ ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ณ€ํ™˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ ๋ณ€ํ™˜ (Null Transform)

์ž…๋ ฅ ์˜์ƒ์„ ์ถœ๋ ฅ ์˜์ƒ์œผ๋กœ ๋ณ€ํ™˜ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ์ž…๋ ฅ ํ™”์†Œ๋ฅผ ์ถœ๋ ฅ ํ™”์†Œ๋กœ ๋ฐ”๊พธ๋Š” ๋ณ€ํ™˜์ž…๋‹ˆ๋‹ค.

โ€‹

Output(q) = Input(p)

๋ฐ˜์ „ ๋ณ€ํ™˜ (Negative Transform)

์‚ฌ์ง„ํ•™์  ์—ญ๋ณ€ํ™˜์ž…๋‹ˆ๋‹ค. ๊ฐ ํ™”์†Œ์˜ ๊ฐ’์ด ์˜์ƒ ๋‚ด์— ๋Œ€์นญ์ด ๋˜๋Š” ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ฃผ๋กœ, ์˜๋ฃŒ๊ณ„์—์„œ MRI์˜์ƒ์—์„œ ๋ฐ˜์ „ํ˜„์ƒ์„ ์ฃผ์–ด ์•” ๋ฐœ๋ณ‘์˜ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

Output(q) = 255 - Input(p)

๋งŒ์•ฝ, 8๋น„ํŠธ ๊ทธ๋ ˆ์ด ๋ ˆ๋ฒจ์˜ ์˜์ƒ์„ ๋ฐ˜์ „์‹œํ‚ค๋ฉด, ํ™”์†Œ ๊ฐ’ 0์€ 255๋กœ, 1์€ 254๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

๊ฐ๋งˆ ๋ณด์ • (Gamma Correction)

์•ž์˜ ์—ฐ์‚ฐ๊ณผ ๋‹ฌ๋ฆฌ ๋น„์„ ํ˜•์ ์ธ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜์ƒ์˜ ํ™”์งˆ์„ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ(CRT)๋Š” ๋น„์„ ํ˜• ์†Œ์ž์—ฌ์„œ ์˜์ƒ ์‹ ํ˜ธ์˜ ๋ณด์ •์ด ํ•„์š”ํ•˜๋ฏ€๋กœ, ์ž…๋ ฅ ๊ฐ’์„ ์กฐ์ •ํ•˜์—ฌ ์ถœ๋ ฅ์„ ์ œ๋Œ€๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

โ€‹

Output(q) = Input(p)^(1/r)

ํ•จ์ˆ˜์˜ ๊ฐ๋งˆ ๊ฐ’r ์— ๋”ฐ๋ผ ์˜์ƒ์„ ๋ฐ๊ฒŒํ•˜๊ฑฐ๋‚˜ ํ๋ฆฌ๊ฒŒ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€‹

r > 1 : ์–ด๋‘์›Œ์ง

r < 1 : ๋ฐ์•„์ง

๋ช…์•” ๋Œ€๋น„ ๋ณ€ํ™˜ (Intensity Contrast Transform)

1) ๋ช…์•” ๋Œ€๋น„ ์ŠคํŠธ๋ ˆ์นญ (Intensity Contrast Stretching)

๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ํฌ๊ฒŒํ•ด์„œ, ๋†’์€ ๋ช…์•” ๋Œ€๋น„์˜ ์˜์ƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜์ƒ์˜ ๊ฐ€์žฅ ๋ฐ์€ ๊ฐ’์„ ์ตœ๋Œ€๋กœ ๋ฐ๊ฒŒ! ๊ฐ€์žฅ ์–ด๋‘์šด ๊ฐ’์„ ์ตœ๋Œ€๋กœ ์–ด๋‘ก๊ฒŒ! ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

โ€‹

2) ๋ช…์•” ๋Œ€๋น„ ์••์ถ• (Intensity Contrast Compress)

๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ์ค„์—ฌ ๋‚ฎ์€ ๋ช…์•” ๋Œ€๋น„์˜ ์˜์ƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜์ƒ์˜ ๊ฐ€์žฅ ๋ฐ์€ ๊ฐ’์„ ์–ด๋‘ก๊ฒŒ, ๊ฐ€์žฅ ์–ด๋‘์šด ๊ฐ’์„ ๋ฐ๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ„ ๊ฐ’ ์ด์šฉ

๋””์ง€ํ„ธ ์˜์ƒ์˜ ํ™”์†Œ ๊ฐ’์„ ์ฃผ์–ด์ง„ ๊ฒฝ๊ณ„ ๊ฐ’์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํ™”์†Œ ๊ฐ’์˜ ์ˆ˜๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

โ€‹

๊ทธ ์ค‘, ํฌ์Šคํ„ฐ๋ผ์ด์ง•(Posterizing)์€ ํ™”์†Œ์˜ ๋ช…์•” ๊ฐ’ ๋ฒ”์œ„๋ฅผ ๊ฒฝ๊ณ„ ๊ฐ’์œผ๋กœ ์ถ•์†Œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ„ ๊ฐ’ 8๊ฐœ๋กœ 8๋น„ํŠธ ๊ทธ๋ ˆ์ด ๋ ˆ๋ฒจ ์˜์ƒ์„ ํฌ์Šคํ„ฐ๋ผ์ด์ง• ์ฒ˜๋ฆฌํ•˜๋ฉด, ๋ช…์•” ๊ฐ’ 256๊ฐœ๊ฐ€ 8๊ฐœ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ƒํ™œ์— ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์‹œํ—˜ ์ ์ˆ˜ 0์ ๋ถ€ํ„ฐ 100์ ์„ 1๋“ฑ๊ธ‰๋ถ€ํ„ฐ 9๋“ฑ๊ธ‰์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์ง„ํ™” (Binarization)

๊ฒฝ๊ณ„ ๊ฐ’์„ ์ด์šฉํ•ด์„œ ๊ฐ’์ด 2๊ฐœ๋งŒ ์žˆ๋Š” ์˜์ƒ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

โ€‹

๋ณดํ†ต ๊ทธ๋ ˆ์ด ๋ ˆ๋ฒจ ์˜์ƒ์„ ์ด์ง„ ์˜์ƒ์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ฐ’์ด 2๊ฐœ ๋ฟ์ด๋ผ์„œ ๋ถ„์„์ด ์‰ฝ๊ณ , ๋ช…์•” ๋Œ€๋น„๊ฐ€ ๋งค์šฐ ๋‚ฎ์€ ์˜์ƒ์—์„œ ๋ฐฐ๊ฒฝ๊ณผ ๋ฌผ์ฒด๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ”์œ„ ๊ฐ•์กฐ ๋ณ€ํ™˜

์˜์ƒ์—์„œ ํ•œ ๋ถ€๋ถ„์˜ ํ™”์†Œ๋Š” ์› ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„, ์ผ์ • ๋ฒ”์œ„์˜ ํ™”์†Œ๋งŒ ๊ฐ•์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

โ€‹

์›ํ•˜๋Š” ๋ถ€๋ถ„์˜ ํ™”์†Œ ๊ฐ’์ด ์ปค์ง€๊ฑฐ๋‚˜ ์ž‘์•„์ ธ์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•ด์„œ ๋”์šฑ ๋„๋“œ๋ผ์ง€๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์•„๋ž˜ (c) ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด, w0๋ถ€ํ„ฐ w1๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ๋ฒ”์œ„์˜ ๊ฐ’์„ ๋šœ๋ ทํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•