에지란?
:픽셀값이 급격하게 커지는 부분
: 그냥 심플하게 픽셀값 곡선을 미분해서, 미분값이 가장 큰 부분을 에지로 검출
1. 소벨의 마스크
1) 수직 방향 검출용 마스크
2) 수평 방향 검출용 마스크
3) 사용 방법
cv.Sobel(이미지 , cv.CV_64F, 수직 마스크, 수평 마스크, ksize=3)
-> 적용 후 출력하려면 반드시 8비트 unsigned int 로 변경해줘야 한다.
EX) 이 이미지의 에지를 검출해보자
1. 수직 검출 마스크 사용
import cv2 as cv
import numpy as np
img = cv.imread('Sobel.png')
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
sobel_x = cv.Sobel(img_gray, cv.CV_64F, 1, 0, ksize=3)
sobel_X = cv.convertScaleAbs(sobel_x)
cv.imshow('x', sobel_x)
cv.waitKey(0)
2. 수평 검출 마스크
sobel_x = cv.Sobel(img_gray, cv.CV_64F, 0, 1, ksize=3) -> 요 부분만 변경
3. 두 소벨 마스크 결과 합치기
import cv2 as cv
import numpy as np
img = cv.imread('Sobel.png')
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
sobel_x = cv.Sobel(img_gray, cv.CV_64F, 1, 0, ksize=3)
sobel_x = cv.convertScaleAbs(sobel_x)
sobel_y = cv.Sobel(img_gray, cv.CV_64F, 0, 1, ksize=3)
sobel_y = cv.convertScaleAbs(sobel_y)
img_all = cv.addWeighted(sobel_x, 1, sobel_y, 1, 0)
cv.imshow('All', img_all)
cv.waitKey(0)
※ Canny edge Detector
: 그 동안 몇번 썻던 Canny 함수다
코딩 시작하고 수학 손땐지 쫌 됬었는데, 다시 잡아야될 듯
'OpenCV > Python' 카테고리의 다른 글
모폴로지 Morphology (0) | 2021.06.13 |
---|---|
Convolution and Mask (0) | 2021.06.13 |
원근(퍼스펙티브) 변환 (0) | 2021.06.13 |
영역 지정 (내가 헷갈려서 정리..) (0) | 2021.06.13 |
이미지 기하학적 변환 (0) | 2021.06.13 |