6-1. 영상의 미분과 소벨 필터
에지 (Edge)
일반적으로 배경과 객체 또는 객체와 객체 간의 경계를 의미하며 영상에서 픽셀의 밝기 값이 급격하게 변하는 부분
영상을 (x,y) 변수를 갖는 함수로 간주할 때, 이 함수의 1차 미분(1st derivative)로 값이 급격하게 변하는 부분을 검출

1차 미분의 근사화(Approximation) 방식:
1. 전진 차분(Forward difference)
2. 후진 차분(Backward difference)
3. 중앙 차분(Centered difference)
그 중 정확성을 높이기 위해 중앙 차분을 사용하는 다양한 마스크 필터를 사용하여 에지를 검출

영상을 1차 미분하기 위한 필터 3가지를 알아 보았다. 마스크 값 비율이 다른 것을 볼 수 있다.
| 프리윗 (Prewitt) 필터 | 소벨(Sobel) 필터 | 샤르(Scharr) 필터 | |
| 가로 방향 마스크(커널) | ![]() |
![]() |
![]() |
| 세로 방향 마스크(커널) | ![]() |
![]() |
![]() |
| OpenCV 함수 | 마스크 행렬 생성 후 filter2D 함수 사용 |
cv2.Sobel(src, ddepth, dx, dy, dst, ksize, scale, delta, borderType) -> dst | cv2.Scharr(src, ddepth, dx, dy, dst, scale, delta, borderType) -> dst |
| 함수 인자 설명 | - | src: 입력 영상 dst: 출력 영상 ddepth: 출력 영상 데이터 타입 (-1이면 입력 영상과 동일, 아니면 실수형 cv2.CV_32F 사용) dx: x 방향 미분 차수 dy: y 뱡향 미분 차수 scale: 연산 결과에 추가적으로 곱할 값 (기본값 = 1) delta: 연산 결과에 추가적으로 더할 값 (기본값 = 0) borderType: 가장자리 픽셀 확장 방식 (기본값 = cv2.BORDER_DEFAULT) |
|
| ksize: 커널 크기 (기본값 = 3) (범위: 1,3,5,7) *보통 두 옵션 중 하나로 지정 - dx=1,dy=0,ksize=3 - dx=0,dy=1,ksize=3 |
- | ||

6-2. 그래디언트와 에지 검출
그래디언트(Gradient)
함수 f(x,y)를 x와 y축으로 각각 편미분(partial derivative)하며 벡터 형태로 표현
여기서 그래디언트의 크기는 픽셀 값의 차이 값, 방향은 픽셀 값이 가장 급격하게 증가하는 방향을 나타낸다.

2D Vector 크기 계산 함수: cv2.magnitude(x, y, magnitude) -> magnitude

x, y는 각각 2D 벡터의 x, y 좌표 행렬로 같은 크기와 실수형 타입
magnitude는 2D 벡터의 크기 행렬로 좌표와 같은 크기와 타입
2D Vector 방향 계산 함수: cv2.phase(x, y, angle, angleInDegrees) -> angle

x, y는 각각 2D 벡터의 x, y 좌표 행렬로 같은 크기와 실수형 타입
angle은 2D 벡터의 크기 행렬로 좌표와 같은 크기와 타입
angleInDegrees: true면 degree 단위, false면 radian 단위
1차 미분 필터 종류인 소벨 필터와 샤르 필터 결과를 가지고 그래디언트를 통해 추가적인 에지 검출

6-3. 캐니 에지 검출
캐니 에지(Canny Edge)
좋은 에지 검출기 조건 by J. Canny
1. 정확한 검출(Good Detection): 에지가 아닌 점을 에지로 찾거나 에지인데 검출하지 못하는 확률을 최소화
2. 정확한 위치(Good Localization): 실제 에지의 중심을 검출
3. 단일 에지(Single Edge): 하나의 에지는 하나의 점으로 표현
검출 단계
1. 가우시안 필터링 적용: 잡음 제거 (Optional)
2. 그래디언트 계산: 주로 소벨 마스크 사용
3. 비최대 억제(Non-maximum Suppression): 그래디언트 방향 위치 두 픽셀을 조사하여 국지적 최대(local max)로 에지 픽셀 설정
4. 히스테리시스 에지 트래킹(Hysteresis Edge Tracking): 이중 임계값 중 상단 임계값과 연결되어 있거나 더 클 경우 에지 선정

캐니 에지 검출 함수: cv2.Canny(image, threshold1, threshold2, edges, apertureSize, L2gradient) -> edges
image는 입력 영상, edges는 에지 영상
threshold1은 하단 임계값, threshold2는 상단 임계값으로 보통 둘의 비율이 1:2 또는 1:3으로 설정
apertureSize는 소벨 연산을 위한 커널 크기 (기본값은 3)
L2gradient는 True면 L2norm 사용(정확도 향상), False면 L1norm 사용(기본값, 연산 속도 향상)


인증 타임
주말이라 더 열심히 듣게 될거라 생각했는데 더 늘어지고 안 듣게 된다. (평일에 일하니 쉬는게 중요해진 느낌) 그래도 아직도 기존 계획보다 많이 밀렸기 때문에 열심히 들어야 한다!



#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 29일차 - Ch7. 이진 영상 처리 (0) | 2022.02.21 |
|---|---|
| 패스트캠퍼스 챌린지 28일차 - Ch6. 영상의 특징 추출 (0) | 2022.02.20 |
| 패스트캠퍼스 챌린지 26일차 - Ch5. 기하학적 변환 (0) | 2022.02.18 |
| 패스트캠퍼스 챌린지 25일차 - Ch5. 기하학적 변환 (0) | 2022.02.17 |
| 패스트캠퍼스 챌린지 24일차 - Ch5. 기하학적 변환 (0) | 2022.02.16 |





