5장 VTK 이미지 처리
학습 튜토리얼: "고급 VTK 그래픽 및 이미지 개발" Zhang Xiaodong, Luo Huoling
특별 감사: Dongling Studio
5.4 가장자리 감지
이미지의 불연속적인 회색 값은 가장자리를 생성하며 이미지의 가장자리 감지는 경계 기반 이미지 분할 방법의 기초입니다.그라데이션은 실제로 이미지의 가장자리 정보를 반영합니다.. 이미지 가장자리는 일반적으로 이미지의 1차 파생물과 2차 파생물에 의해 감지됩니다.
5.4.1 기울기 연산자
그래디언트 연산자는 이미지의 1차 도함수에 해당합니다. 이미지의 1차 도함수는 일반적으로 차이 연산을 통해 근사화됩니다. 그래디언트 이미지는 벡터이므로 직접 표시할 수 없으므로 벡터의 모듈인 이미지 내 각 픽셀의 그래디언트 크기와 2-norm을 계산해야 합니다.
기울기를 계산할 때 중간차분법을 사용하는데, 즉 각 방향의 픽셀 차이는 전후의 두 픽셀 값의 차이이다. vtkImageGradient 클래스는 경계 픽셀 그라데이션을 계산할지 여부를 결정하는 HandleBoundaries 변수를 내부적으로 정의합니다.
참고: 컬러 이미지는 그라데이션을 계산하는 데 직접 사용할 수 없으며 먼저 회색조 이미지로 변환해야 합니다.
Sobel 연산자는 일반적으로 사용되는 기울기 연산자이기도 합니다. 3×3 템플릿을 사용하여 이미지 위로 이동하고 각 위치의 중앙 픽셀에 해당하는 그래디언트 값을 계산합니다.
과정:
1. Sobel 연산자를 사용하여 이미지의 기울기 이미지를 계산합니다.
2. X 방향의 기울기 성분과 Y 방향의 기울기 성분을 추출합니다.
3. Sobel 연산자의 계산된 값이 음수 값일 수 있으므로, 각 구성 요소 이미지의 절대값이 계산됩니다.
4. 이미지를 표시하기 전에 vtkImageShiftScale로 이미지의 값 범위를 [0, 255]로 조정합니다.
5.4.2 캐니 연산자
계산 단계:
1. 원본 이미지 노이즈 제거(가우스 평활화)
2. 이미지의 각 픽셀의 기울기를 계산하고 모듈 값과 방향을 계산합니다(차분 방법)
3. 기울기에 대해 "비최대 억제"를 수행합니다. 이미지 가장자리 점의 기울기 값은 일반적으로 기울기 방향의 최대값이므로 가장자리를 감지하려면 가장자리가 아닌 점을 억제하기 위해 최대값이 아닌 값을 0으로 할당해야 합니다.
4. 이중 임계값 방법은 가장자리를 감지하고 가장자리를 연결합니다. 두 개의 경사 임계값을 높고 낮게 설정합니다.
그라디언트 이미지에서 high보다 작은 픽셀을 0으로 할당하여 이미지의 가장자리에 가까울 수 있지만 불연속성이 있을 수 있는 가장자리 이미지 L1을 얻습니다.
기울기 영상에서 low보다 낮은 픽셀에 0을 할당하면 에지 영상 L2를 얻을 수 있는데 이 영상은 노이즈의 영향을 많이 받지만 에지 정보가 더 많다.
Edge를 연결할 때 L1을 기반으로 0이 아닌 점에 대한 Edge Tracking을 수행하는데, Tracking 과정에서 중단이 발생하면 연결 가능한 Edge를 L2의 해당 픽셀과 그 주변에서 끝까지 찾아낸다.
5.4.3 라플라시안 연산자
라플라시안 연산자는 기울기의 발산인 2차 에지 연산자입니다. 템플릿을 통해서도 구현됩니다.
라플라시안 연산자는 이미지의 2차 도함수를 계산하며 이미지 노이즈에 민감합니다. 라플라시안 연산자의 결과는 가장자리의 너비를 나타내는 스칼라입니다. 그러나 종종 이중 픽셀 너비의 가장자리를 생성하고 방향 정보를 제공할 수 없으므로 가장자리 감지에 직접적으로 사용되는 경우는 적습니다.