영상의 미분과 소벨 필터

매일 공부(ML)·2021년 12월 1일
0

OPEN CV

목록 보기
29/45

에지 검출과 미분

  • 에지(edge)

    • 영상에서 픽셀의 밝기 값이 급격하게 변하는 부분
    • 배경과 객체 혹은 객체와 객체의 경계

  • 기본적인 에지 검출 방법

    • 영상을(x,y)변수의 함수로 간주할 때, 이 함수의 1차 미분값이 크게 나타나는 부분 검출

  • 1차 미분의 근사화

  • 전진 차분
  • 후진 차분
  • 중앙 차분
  • 다양한 미분 마스크

소벨 필터 이용한 미분 함수

cv2.Sobel(src, ddepth, dx, dy, dst=None, ksize=None, scale=None, 
delta=None, borderType=None) -> dst
  • src: 입력 영상

  • ddepth: 출력 영상 데이터 타입으로 -1이면 입력 영상과 같은 데이터 타입 사용

  • dx: x방향 미분 차수 , 기본으로 dx =1, dx=0

  • dy: y방향 미분 차수 , 기본으로 dy = 0, dy =1

  • ksize: 커널 크기로 기본값은 ksize= 3

  • dst: 출력영상 행렬

  • scale: 연산 결과에 추가적으로 곱한 값으로 기본 값은 1

  • delta: 연산 결과에 추가적으로 더할 값으로 기본 값은 0

  • borderType: 가장자리 픽셀 확장 방식으로 기본값은 cv2.BORDER_DEFAULT

샤르필터 이용하여 미분 함수

cv2.Scharr(src, ddepth, dx, dy, dst=None, scale=None, delta=None, 
borderType=None) -> dst
  • src: 입력 영상

  • ddepth: 출력 영상 데이터 타입으로 -1이면 입력 영상과 같은 데이터 타입 사용

  • dx: x방향 미분 차수

  • dy: y방향 미분 차수

  • dst: 출력영상 행렬

  • scale: 연산 결과에 추가적으로 곱할 값으로 기본 값은 1이다

  • delta: 연산 결과에 추가적으로 더할 값으로 기본 값은 0이다

  • borderType: 가장자리 픽셀 확장 방식으로 기본값은 cv2.BORDER_DEFAULT

실습예제

  • 소벨 필터
src = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSCALE)
dx = cv2.Sobel(src, -1, 1, 0, delta=128)
dy = cv2.Sobel(src, -1, 0, 1, delta=128)

profile
성장을 도울 아카이빙 블로그

0개의 댓글