영상처리를 하면서 많이 사용했던  grayscale에 대해서 포스팅하겠습니다.

코드는 사용하는 언어, 영상의 종류에 따라서 천차만별이기 때문에 우선 생략하고 원리 중심으로 포스팅하겠습니다.

grayscale은 컬러 영상을 흑백화 해주는 것이라고 생각하면 됩니다.


연산속도도 빠르고 간단한 작업이기 때문에 영상처리를 처음 접할때 많이 하는 작업입니다.


 

https://www.slideshare.net/AdrinPalaciosCorella/efficient-image-processing-with-hal

영상처리에서 영상은 동영상뿐만 아니라 그냥 이미지도 영상 안에 포함됩니다.

grayscale은 왜 하는가 하면 보통 edge detection이라고 영상의 경계면을 찾는 과정이 있습니다.

이 과정은 그냥 컬러 영상에서는 하기가 복잡하기 때문에 grayscale을 먼저 하고 edge detection을 했던 기억이 납니다.

grayscale하는 제일 기본적인 방법은 영상의 픽셀의 RGB값을 먼저 추출해서

gray = (R+G+B)/3 입니다. 

(R+G+B)/3을 하면 영상의 명도 값이 나오고  칼라 영상을 흑백화할 수 있습니다.

영상의 종류에 따라서 다르지만 보통 R,G,B,gray 값은 0~255값으로 표현됩니다.

예를 들어 (R,G,B)값이 (200,100,0)이면 이를 grayscale 하면 (100,100,100)이 되는 것입니다.

이게 제일 기본적인 grayscale이고 이보다 더 나아가서 

gray = (0.299R+0.587G+0.114B), gray = (0.2126R+0.7152G+0.0722B)

위와 같은 grayscale도 있고 이 밖에도 여러 논문을 보면 계수가 엄청 다양합니다.

위와 같은 변환은 사람의 눈에 대한 민감도에 따라 가중치를 다르게 준 grayscale입니다.


영상처리에 처음 도전하시는 분들은 grayscale에 도전해보세요!

+ Recent posts