Set of pixels: object and structuring elements(SEs)
<Foreground(전경)> - 이미지에서 객체가 차지하는 픽셀
<Background(배경)> - 전경 외의 모든 픽셀
<Structuring Element(SE)> - 전경 및 배경 픽셀의 패턴을 정의하는 작은 형태
Reflextion about the origin
<Origin(원점)> - SE의 기준점 - 일반적으로 중앙값으로 설정
<Don't Care Elements> - 해당 요소는 전경(1)이든 배경(0)이든 상관 없음
=> Reflection은 Origin을 기준으로 뒤집어 반사된 B hat을 생성 => SE는 꼭 정사각형 필요 X
Erosion(침식)
- 정의: SE(B)가 Image I에서 전경에 완전히 포함될 때만 해당 영역의 중심 픽셀(origin)을 유지한다.
EX)
SE가 선형 형태SE의 크기에 따라 Erosion된 결과물이 달라진다.
Dilation(확장)
- 정의: SE(B)가 어느 한 부분이라도 Image I에 전경과 겹칠 경우 해당 영역의 중심 픽셀(origin)을 포함
EX)
객체의 크기가 증가하여 작은 구멍이나 틈이 채워짐
Opening
Erosion => Dilation / (Erosion 보완) Erosion하는데 덜 깎임.
- 정의: 먼저 Erosion을 수행하여 작은 구조나 노이즈를 제거한 뒤, Dilation을 통해 원래 형태로 일부 복원 => (B)z가 A에 완전히 포함 되었을 때 (B)z 전부 다 합한다.
Closing
Dilation => Erosion / (Dilation 보완) Dilation 하는데 덜 불림
- 정의: 먼저 Dilation을 수행하여 객체의 빈 공간이나 틈을 메운 후, Erosion을 통해 구조의 일부 복원 => A와 B가 겹치지 않게 바깥을 따라 굴린다.
Comparison
< Erosion> - 전체적인 shape이 작아짐 - 연산을 반복할수록 계속 축소
<Opening> - 얇은 구조를 제거하지만 전체적인 shape은 유지 - 연산을 반복해도 큰 차이가 없다.
<Dilation> - 전체적인 shape이 커짐 - 연산을 반복할수록 계속 확장
<Closing> - 비어있는 부분을 채우고 얇은 틈을 매움 - 연산을 반복해도 큰 차이가 없다.
Opening and Closing: Propertyies (한 번 읽어보기)
EX)
1. Morphologicla Image Processing(형태학적 이미지 처리)
2.Boundary Extraction(경계 추출)
3. Hole Filling(구멍 채우기)
이미지 A에서 hole은 객체 내부의 비어있는 공간을 의미하며, 이 공간을 메우는 연산
- 작업 단계 1. 초기화: hole의 시작점(픽셀)을 설정 2. 반복적 Dilation: SE를 이용해 점차 hole을 확장 3. Intersection(교집합): 확장된 결과가 배경 영역을 넘어가지 않도록 제한 4. 종료: hole이 완전히 채워질 때까지 반복
4. Connected Components(연결된 성분)
주어진 시작점에서 연결된 모든 성분을 반복적으로 Dilation하여 탐색
- 작업 단계 1. 시작점 주변의 연결된 픽셀을 탐색 2. 연결된 영역을 Dilation 3. 연결된 모든 성분이 식별되고 탐색 종료
Image Segmentation(이미지 분할)
Edge-based Segmentation(경계 기반 분할)
- 입력 이미지에서 Edge(경계)를 탐지한 후, 이를 기준으로 분할 수행
Region-based Segmentation(영역 기반 분할)
- 동일한 속성을 가진 영역을 그룹화 하여 분할
# Derivatives in 1D
Image Derivatives(이미지 도함수)
- Ramp: 천천히 변하는 영역 - Step: 급격히 변하는 영역 - Isolated Point: 단일 픽셀의 강도 값이 주변과 급격히 다른 점 - Line: Isolated Point보다는 약간 Ramp처럼 크기가 있는 형태 - Flat segment: 평평한 영역
- First derivative: 두꺼운 경계 생성 - Second derivative: 세부 구조 및 경계 세분화
<Second derivative> - Isolated Point: Second derivative 값이 급격히 커진다. - Ramp, Step의 시작점, 끝점: +(-) => -(+) 밝기 변화의 방향을 나타낸다.
EX)
1. Detection of isolated points(고립된 점 탐지)
Laplacian 필터를 사용하여 고립된 점 검출
2. Line Detection(선 검출)
입력이미지에서 이중 경계를 포함한 선형 특징 강조
3. Line Detection in Specific Directions(특정 방향의 선 검출)
결과
Edge Models
Ramp edge
- Firsr derivative: 경사 변화를 식별하며, 변화가 시작되고 끝나는 지점을 강조 - Second derivative: 변화의 속도와 방향을 분석하며, 변화의 시작점과 끝점을 구분 => Zero Crossing: 밝기가 변하는 핵심 지점
Noise and Image derivatives
- 이미지에 노이즈가 포함되면, 1차 및 2차 미분 값이 비정상적으로 커지거나 왜곡이 일어남 - 노이즈 제거를 위해 전처리 작업(Smoothing)이 필요
Gradient and Edge direction
- Gradient Vector: 현재 픽셀의 위치에서 변화량이 가장 큰 방향 - Edge direction: Gradient Vector에 항상 Orthogonal(수직)한 방향
Gradient Operators
Gradients
- Gradient를 계산하기 전에 이미디를 Smoothing 처리하여 selective edge를 얻는다. => Edge 검출에서 노이즈가 줄어들어 더 명확한 결과를 얻는다.
Edge detection
1. 입력 이미지를 Smoothing하여 노이즈를 감소시킨다. 2. Grdient 크기 이미지를 계산한다. 3. Gradient 크기 이미지에 대해 Nonmaximal suppression을 적용한다. 4. 결과 이미지를 Threshold 처리하여 최종 edge를 추출한다.
Nonmaxima Supperssion
1. 특정 방향의 discrete한 방향(d1,d2)으로 기울기 방향(α(x, y))을 매칭 2. 이웃 픽셀과의 비교를 통해 현재 픽셀 값이 작으면 억제
Canny Edge Detector
1. Gaussian Filter로 입력 이미지 Smoothing 2. 기울기 크기와 각도를 계산 3. Nonmaximal Suppression을 통해 정확한 edge 추출 4. Double Threshold 및 connectivity analysis(연결 분석)으로 최종 edge 생성
Double Thresholding
- 높은 임계값 TH와 낮은 임계값 TL을 사용하여 edge 감지의 정확성을 개선하는 방법
- edge curve를 시작하려면 TH보다 큰 값에서 시작하고, edge curve를 계속 추적하려면 TL이상인 값을 포함 - q0라는 지점을 기주으로 edge chain을 추적 - 그래프에서 파란색 화살표는 추적이 계속되는 지점을, 빨간색 화살표는 추적이 멈추는 지점