🐍Python/OpenCV

    [OpenCV] 04-7. Canny Edge Detection

    이번 챕터에서는Canny edge detection의 개념OpenCV의 cv2.Canny() 함수에 대해 볼 것이다.TheoryCanny Edge Detection은 가장자리를 탐지하는 유명한 알고리즘이다. 1986년 canny에 의해서 개발되었다. 이는 다층 알고리즘이고, 각 층별로 봐볼 것이다. 1. Noise Reduction가장자리 검출이 이미지 내의 노이즈에 영향을 받기 쉽기에, 첫 번째로 5x5 가우시안 필터로 이미지의 노이즈를 제거해준다. 이전 챕터에서 봤었던 내용이다. 2. Finding Intensity Gradient of the ImageSmoothened 이미지는 수평 및 수직 방향으로 Sobel 커널로 필터링하여 수평 방향(Gx)..

    [OpenCV] 04-6. Image Gradients

    이미지의 gradients(경사도), edges(가장자리)를 찾는다.cv2.Sobel(), cv2.Scharr(), cv2.Laplacian()등의 함수에 대해서 볼 것 이다.TheoryOpenCV는 세 가지 유형의 gradients 필터 또는 High-pass 필터인 Sobel, Sharr, Laplacian을 제공한다.1. Sobel and Scharr DerivativesSobel 연산자는 joint Gaussian smoothing + 미분 연산이므로 노이즈에 대한 내성이 더 강하다. 수직, 수평으로 취할 미분(derivatives)의 방향을 지정할 수 있다. (argument의 yorder, xorder로 각각 가능하다.) 또한 ksize를 통해 커널의..

    [OpenCV] 04-5. Morphological Transformations

    이번에는 Erosion(침식), Dilation(팽창), Opening, Closing등과 같은 서로 다른 형태학적 기능에 대해서 볼 것이다.cv2.erode(), cv2.dilate(), cv2.morphologyEx()에 대해서 배울 것이다.Theory형태의 변환은 이미지 모양에 기반한 간단한 기능이다. 이는 보통 이원의 이미지에서 작동된다. 이는 두 개의 입력을 필요로 하는데, 하나는 원래의 이미지, 두 번째로는 기능의 성질을 결정하는 “구성 요소” 나 “커널”이라고 불리는 것이다. 두 개의 기본적인 현태학적 기능은 Erosion과 Dilation이다. 그리고 이들은 Opening, Closing, Gradient등 과 같은 형태로..

    [OpenCV] 04-4. Smoothing Images

    다양한 low pass filter(LPF)가 있는 흐릿한 이미지이미지에 커스텀 필터 적용하기2D Convolution ( Image Filtering )1차원 신호에 대해서, 이미지는 다양한 LPF, high-pass filters(HPF)등으로 필터링 할 수 있다. LPF는 노이즈를 제거하거나, 이미지를 흐릿하게 하는데 도움을 준다. HPF 필터들은 이미지에서 윤곽선을 찾도록 도와준다.OpenCV는 커널을 이미지로 확인하는 cv2.filter2D() 함수를 제공한다. 예를 들어서, 이미지에 대해서 평균 필터를 사용해 볼 것이다. 5x5 평균 필터 커널은 다음과 같이 정의될 수 있다.K=125⎡⎣⎢⎢⎢⎢⎢1111111111111111111111111⎤⎦⎥⎥⎥..

    [OpenCV] 04-3. Geometric Transformations of Images

    이미지를 변형시키는 다른 기하학적인 방법인 translation, rotation, affine transform 등에 대해서 배워볼 것이다.cv2.getPerspectiveTransform() 함수에 대해 볼 것이다.TransformationsOpenCV는 두 가지 변형 함수 cv2.warpAffine과 cv2.warpPerspective를 제공합니다. cv2.warpPerspective가 3x3 변환 매트릭스를 입력으로 받을 때, cv2.warpAffine은 2x3 변환 매트릭스를 받는다.Scaling스케일링은 그저 이미지를 resizing하는 것이다. OpenCV는 이러한 목적으로 cv2.resize 함수가 제공된다. 이..

    [OpenCV] 04-2. Image Thresholding

    이번에는, 간단한 thresholding, 적응성 있는 thresholding, Otsu’s의 thresholding에 대해서 배워볼 것 이다.cv2.threshold, cv2.adaptiveThreshold등에 대해서 볼 것 이다.Simple Thresholding만약에 픽셀 값이 임계값보다 크면 하나의 값(흰색일수도)이 할당되고, 그렇지 않으면 다른 값(검정색일수도)이 할당된다. 사용된 함수는 cv2.threshold이다. 첫 번째 argument는 그레이 스케일 이미지여야하는 소스 이미지이다. 두 번째 argument는 픽셀 값을 분류하는 데 사용되는 임계값이다. 세 번째 argument는 픽셀 값이 임계값보다 클 경우(혹은 그 보다 작을 경우) 주어..