안녕하세요. 지난 포스팅의 디지털 영상 처리 - 스무딩과 샤프닝 구현에서는 MATLAB에서 칼라 영상을 스무딩하거나 샤프닝하는 방법에 대해서 알아보았고 어떤 칼라 공간에서 처리를 하느냐에 따라서 그 결과가 달라진다는 것을 알았습니다. 오늘은 관심 칼라를 다른 칼라로부터 분리하는 간단한 분할 방법에 대해서 알아보도록 하겠습니다.
먼저, $\mathbf{z}$를 임의의 칼라 벡터, $\mathbf{a}$를 가장 관심있는 칼라 벡터라고 보도록 하겠습니다. 또한 간단하게 하기 위해서 저희가 현재 RGB 칼라 공간을 나룬다고 가정하겠습니다. 그러면 저희는 두 벡터 사이의 길이를 노움(Norm)을 이용해서 계산할 수 있습니다. 이를 $D$라고 하면 아래와 같이 계산되겠죠.
$$\begin{align} D(\mathbf{z}, \mathbf{a}) &= ||\mathbf{z} - \mathbf{a}|| \\ &= \left[(\mathbf{z} - \mathbf{a})^{T}(\mathbf{z} - \mathbf{a})\right]^{\frac{1}{2}} \\ &= \left[(\mathbf{z}_{R} - \mathbf{a}_{R})^{2} + (\mathbf{z}_{G} - \mathbf{a}_{G})^{2} + (\mathbf{z}_{B} - \mathbf{a}_{B})^{2}\right]^{\frac{1}{2}} \end{align}$$
이때, $\mathbf{a}$가 가장 칼라의 중심이기 때문에 해당 벡터로부터 멀리 떨어진 칼라는 관심칼라가 아닙니다. 그 기준을 $D_{0}$라고 했을 때 관심 객체의 분할은 $D(\mathbf{z}, \mathbf{a}) \le D_{0}$와 같이 표현할 수 있습니다. 이때, 위 식은 오직 각 칼라 성분에서 초구 형태만 분할하고 있습니다. 따라서 타원과 같은 모양을 위해서 공분산 행렬 $\mathbf{C}$를 도입하여 아래와 같이 표현할 수도 있습니다.
$$D(\mathbf{z}, \mathbf{a}) = \left[(\mathbf{z} - \mathbf{a})^{T} C^{-1} (\mathbf{z} - \mathbf{a})\right]^{\frac{1}{2}}$$
물론 위와 같이 초구나 타원으로도 표현할 수 있지만 정의하기에 따라서 직육면체 영역으로도 관심 칼라를 분할할 수 있습니다. 이를 그림으로 표현하면 아래과 같겠죠.
'image processing' 카테고리의 다른 글
디지털 영상 처리 - 칼라 영상 압축 (0) | 2021.08.01 |
---|---|
디지털 영상 처리 - 칼라 영상의 노이즈 (0) | 2021.07.30 |
디지털 영상 처리 - 스무딩과 샤프닝 구현하기 (0) | 2021.07.26 |
디지털 영상 처리 - 스무딩과 샤프닝 (0) | 2021.07.23 |
디지털 영상 처리 - 칼라 변환 (0) | 2021.07.19 |