πŸ“˜ Programming/OpenCV

[μ˜μƒ 처리] νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” (Histogram Specification)

ν•œμ½”λ”© 2020. 12. 29. 22:57
728x90
728x90

νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” (Histogram Specification)

μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨μ„ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λ²•μž…λ‹ˆλ‹€.

νžˆμŠ€ν† κ·Έλž¨ μ •ν•©(Histogram Matching)이라고도 ν•©λ‹ˆλ‹€.

​

λͺ…μ•” λŒ€λΉ„λ₯Ό κ°œμ„ ν•˜λŠ” 것은 νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™”μ™€ κ°™μŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ, νŠΉμ • 뢀뢄을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ„ μ΄μš©ν•œ μ •ν•©μœΌλ‘œ 일뢀 μ˜μ—­μ—μ„œλ§Œ λͺ…μ•” λŒ€λΉ„λ₯Ό κ°œμ„ ν•œλ‹€λŠ” 점이 ν‰ν™œν™”μ™€ λ‹€λ¦…λ‹ˆλ‹€!

νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” κ³Όμ •

1) μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨ 생성

​

​

2) μž…λ ₯ μ˜μƒ ν‰ν™œν™”

​

​

3) μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™”

​

​

4) ν‰ν™œν™”λœ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ„ λ‹€μ‹œ μ—­ν‰ν™œν™”

μ—­ν‰ν™œν™”λŠ” ν‰ν™œν™”μ™€ λ°˜λŒ€λ‘œ μ •κ·œν™”λœ λˆ„μ ν•©μ΄ λͺ…도 값이 되고, λͺ…도 값은 μ—­ν‰ν™œν™” 값이 λ©λ‹ˆλ‹€.

μ—­ν‰ν™œν™” 값이 μ—­ν•¨μˆ˜λ‘œμ„œ λ£©μ—…ν…Œμ΄λΈ”(Look-up Table)둜 μ‚¬μš©λ©λ‹ˆλ‹€.

​

λͺ…도가 5μΌλ•Œ, μ •κ·œν™” 값이 2.6μž…λ‹ˆλ‹€. λ”°λΌμ„œ, λͺ…도가 2와 3μΌλ•Œμ—λŠ” μ—­ν‰ν™œν™” 값이 5κ°€ λ©λ‹ˆλ‹€.

​

​

5) μ—­λ³€ν™˜ ν•¨μˆ˜(룩업 ν…Œμ΄λΈ”)λ₯Ό μ΄μš©ν•΄ μž…λ ₯ μ˜μƒμ˜ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨ 생성

μ—­ν‰ν™œν™” 값을 가진 λ£©μ—…ν…Œμ΄λΈ”μ„ μ΄μš©ν•΄μ„œ μž…λ ₯ μ˜μƒμ— λ§€ν•‘ν•©λ‹ˆλ‹€.

룩업 ν…Œμ΄λΈ”μ˜ 인덱슀 0의 값이 0이면, μž…λ ₯ μ˜μƒμ— 0을 0으둜 λ°”κΎΈκ³ 

룩업 ν…Œμ΄λΈ”μ˜ 인덱슀 5의 값이 6이면, μž…λ ₯ μ˜μƒμ— 5을 6둜 λ°”κΏ‰λ‹ˆλ‹€.

​

​

자 μ΄λ ‡κ²Œ μƒμ„±λœ λͺ…μ„Έν™”λœ μž…λ ₯ μ˜μƒκ³Ό μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ„ λΉ„κ΅ν•΄λ΄…μ‹œλ‹€.

μ•„λž˜ 사진과 같이 μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ˜ λͺ¨μ–‘μ΄λž‘ λͺ…μ„Έν™”λœ μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨μ΄ μœ μ‚¬ν•œ λͺ¨μ–‘을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

즉, νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™”λŠ” μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨μ„ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λ²•μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

728x90
λ°˜μ‘ν˜•