반응형

영상에서 마스크기반 처리는 컨벌루션 작업에 의해 수행된다.

영상처리에서 컨벌루션이란 가중치를 갖는 마스크를 이용하여 영상처리를 진행하는 것인데

입력 영상에서 마스크를 씌운 다음, 입력 영상의 픽셀값과 마스크의 가중치를 각각 곱한 후

그 합을 출력영상의 픽셀값으로 정하는 것을 말한다.

 

일반적으로 마스크의 크기는 n X n 으로 표현되는데 이때 n은 홀수로 주로 3x3, 5x5 크기의 마스크가

주로 사용된다.

마스크의 크기가 클수록 입력 영상에서 주변 픽셀의 기여도가 커져서 출력 영상의 픽셀값에 영향을

많이 미치나 계산량이 많아 처리 시간이 증가하게 된다.

 

영상에서 컨벌루션을 수행하는데 있어서 마스크가 영상의 가장 바깥에 있는 가장자리에 있을 때

마스크의 일부가 입력영상을 벗어나면서 컨벌루션 계산을 할 수 없는 경우가 발생하는데

이를 경계선 처리, 경계부분 처리라고 하며 크게 4가지 방법으로 정리할 수 있다.

 

검은색 부분의 값은 주변 회색부분들과 마스크에 대한 결과값이다.

 

  첫째.  원래 영상에 픽셀값이 0인 검은색 테두리를 추가아여 영상의 크기를 크게 한 다음

          원하는 마스크를 적용한다.

 

  둘째.  원래 영상의 가장 바깥 경계와 같은 색을 가진 픽셀을 추가한 다음 원하는 마스크를 적용한다.

           (영상에서 임의 픽셀의 값은 주위 픽셀과 비슷한 픽셀값을 가질 확률이 크다)

 

  셋째.  입력 영상에서 마스크를 픽셀 (0,0)이 아닌 (1,1) 에서 컨벌루션을 시작한다.

           이 경우 출력 영상은 입력 영상보다 크기가 작은 영상이 얻어진다.

 

  넷째.  영상의 시작과 끝 부분이 연결된 것으로 처리한다.

           

네번째 방법

 

 

 

 

 

 

출처: opencv를 이용한 영상처리 (임동훈 지음)

반응형

+ Recent posts