앎을 경계하기

DAFIT/909 - OpenCV 연습하기 (1)

<DAFIT> 09 OpenCV 연습하기(1) - 06 Edge Detection(1)

양갱맨 2019. 12. 11. 03:49

https://docs.opencv.org/3.4/d2/d2c/tutorial_sobel_derivatives.html

 

OpenCV: Sobel Derivatives

Prev Tutorial: Adding borders to your images Next Tutorial: Laplace Operator Goal In this tutorial you will learn how to: Use the OpenCV function Sobel() to calculate the derivatives from an image. Use the OpenCV function Scharr() to calculate a more accur

docs.opencv.org

 

가장자리는 급격하게 값이 변하는 곳으로 표현할 수 있다.

1차 미분을 하게 되면 엣지 부분을 더 쉽게 볼 수 있다.

 

sobel operation은 3x3크기의 행렬을 사용해서 연산을 할 때 중심을 기준으로 앞 뒤 방향으로 비교해서 변화량을 검출하는 알고리즘이다.

sobel은 x방향, y방향으로 나눠서 각각 행렬을 갖는다. (대각선으로도 가능하다.)

이 행렬은 모두 홀수 size를 가져야한다.

먼저 x방향으로 다음과 같이 kernel G_x를 나타낼 수 있다.

다음 y방향으로 다음과 같이 표현할 수 있다.

이미지의 각 지점에서 두 결과 G_x, G_y를 계산결과를 결합해서 해당 지점의 gradient의 근사값을 구한다.

위 식보다 더 간단히 아래와 같이 표현하기도 함.

 

사용하는 방법은 굉장히 간단하다.

#edge는 픽셀값이 급격하게 변하는 지점이다.
#주변보다 1차 미분값이 큰 부분을 엣지로 검출하게된다.
#sobel x,y 방향 각각의 별도 커널을 사용해서 엣지 검출한다.
#sobel x는 수직선 방향
#sobel y는 수평선 방향
import cv2
from google.colab.patches import cv2_imshow
img_path='/content/drive/My Drive/다핏문제/909/lena.jpg'

이미지를 grayscale로 읽어서 cv2.Sobel()함수를 사용하면 된다.

Sobel()함수의 파라미터는 다음과 같다.

img = cv2.imread(img_path,2)
res = cv2.Sobel(img,-1,1,1,ksize=3)
cv2_imshow(res)

 

 

 

 

http://www.dafit.me/question/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=2822946&t=board

 

[DF909] OpenCV 연습하기 (1) : 다핏, 데이터사이언스 연습문제

🔥 문제 설명OpenCV Python을 이용하여 이미지 처리에 사용되는 필터링 및 엣지탐지 를 연습합니다.각종 영상 처리에서 기술표준으로 활용되는 '레나' 이미지를 활용해서 기초 기능과 필수 기술을 연습합니다.🔥 추천 대상영상 처리의 기초를 학습하고자 하는 자 OpenCV를 이용한 '필터 적용'과 '엣지 탐지'에 대한 기본적인 지식을 학습하고자 하는 자[DF907 : OpenCV 다루기 첫걸음]을 학습한 자🔥 학습 목표OpenCV는 오픈소스 컴퓨터 비전

www.dafit.me