Computer Vision/Implement

Contrast stretching (python 구현)

jstar0525 2021. 4. 15. 16:33
반응형

Contrast stretching


머신비전, 영상처리 분야의 Contrast stretching 알고리즘에 대해 알아보겠습니다.

 

 

 

 

0. Overview


Contrast stretching은 말 그대로 명암대비를 스트레칭해주는 것입니다.

 

이미지에서 특정한 밝기 값들이 모여있으면

유관으로 판별하기 쉽지 않습니다.

 

그래서 특정 부분의 명암 영역을 rebalance 하여

이미지가 분명하게 보일 수 있게 하는 것이 목표입니다.

 

위의 첫 번째 그림은

이미지에 대해서 x축은 밝기 값인 히스토그램입니다.

 

그림과 같이 특정 영역(100~255)

두 번째 그림처럼 0~255 영역으로 stretching 해주면 됩니다.

 

 

 

 

1. python 구현


 

프로그램에 사용한 라이브러리입니다.

 

 


 

이미지와 관심 영역에 대한 파라미터를 넣어주면,

관심 영역의 최솟값이 0으로 최댓값은 255로 rebalance 하여 return 합니다.

 

 


 

결과를 보면,

기존의 이미지(첫 번째)와 contrast image(두 번째) 이미지가

뚜렷한 차이가 있음을 알 수 있습니다.

 

contrast stretching은 명암을 stretching 할 영역을

어떻게 설정하느냐에 따라 결과가 크게 달라지게 됩니다.

 

 


 

해당 소스는 아래의 링크에서 보실 수 있습니다.

 

github.com/jstar0525/MachineVision/tree/main/03%20Contrast%20stretching

 

jstar0525/MachineVision

Machine Vision Algorithm. Contribute to jstar0525/MachineVision development by creating an account on GitHub.

github.com

 

반응형