🐍Python

    [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는 픽셀 값이 임계값보다 클 경우(혹은 그 보다 작을 경우) 주어..

    [OpenCV] 04-1. Changing Colorspaces

    이 튜토리얼에서는 하나의 컬러 공간의 이미지를 다른 공간으로 변환하는지를 배울 것이다. (ex. BGR -> Gray / BGR -> HSV 등)추가적으로, 비디오에서 색이 있는 객체를 추출하는 기능을 만들어 볼 것이다.cv2.cvtColor(), cv2.inRange()에 대해서 배울 것이다.Changing Color-spaceOpenCV에는 150개 이상의 색상 공간 변환 방법이 있다. 하지만 하지만 가장 자주 널리 사용되는 BGR -> Gray 와 BGR -> HSV를 볼 것이다.색상 변환에서, cv2.cvtColor(input_img,flag) 함수를 사용하는데 flag는 변환의 종류를 결정한다.BGR -> Gray 변환에 대해서는 cv2.COL..

    [OpenCV] 03-3. Performance Measurement and Improvement Techniques

    이미지 전처리과정에서, 초당 수많은 기능들을 다루기 때문에 코드가 정확한 해결책을 줄 뿐만 아니라, 빨라야하는게 필수적이다. 이번 장에서는 다음의 것들을 배울 것이다.코드의 성능을 측정코드의 성능을 향상시키는 조금의 방법cv2.getTickCount(), cv2.getTickFrequency() 함수OpenCV와 별개로, Python에서는 실행 시간을 측정할 수 있는 ‘time’ 모듈이 있다. 또 다른 모듈로는 ‘profile’로, 어떤 코드에 얼마나 시간이 걸렸는지, 함수가 몇 번 불렸는지등 자세하게 코드에 대한 리포트를 보여준다. 하지만 IPython을 사용중이라면, 이 모든 기능은 객체 지향적인 방식으로 통합된다. 중요한 몇 가지를 볼 것이고, 자세한 내용은 아래의 내용을 보면 된다!Measurin..