🐍Python/OpenCV

    [OpenCV] 04-12. Template Matching

    이번 장에서는템플릿 매칭을 이용하여 이미지 내에서 객체를 찾기cv2.matchTemplate(), cv2.minMaxLoc() 함수에 대해서 배울 것이다!Theory탬플릿 매칭은 커다란 이미지 내에서 모형 이미지의 위치를 찾고 탐색하는 방법이다. OpenCV는 이를 위해 cv2.matchTemplate()를 제공한다. 2D 컨볼루션처럼, 간단하게 템플릿 이미지가 입력 이미지 위를 지나다니면서 입력 이미지의 템플릿과 조각을 비교하는 것이다. 여러 비교 방법들이 OpenCV에 구현되어있다. 이는 흑백 스케일의 이미지를 반환하고, 각 픽셀은 픽셀의 인접 영역이 템플릿과 얼마나 일치하는지 나타낸다.만약 입력 이미지의 크기가 (WxH), 템플릿 이미지의 크기가 (wxh)라면,..

    [OpenCV] 04-11. Image Transforms in OpenCV

    이번 장에서는OpenCV를 사용하여 이미지의 Fourier Transform을 찾을 것이다.Numpy에서 FFT함수를 이용하기 위해Fourier Transform의 기능들다음의 함수를 볼 것 이다 : cv2.dft(), cv2.idft() 등등TheoryFourier Transform은 다양한 필터의 주파수(frequency) 특성을 분석하는 데 사용된다. 이미지의 경우, 주파수 영역을 찾기 위해 2D Discrete Fourier Transfrom(DFT)를 사용한다. Fast Fourier Transform(FFT)이라는 고속 알고리즘이 이미지 처리 또는 신호 처리에서 확인해 볼 수 있다.사인곡선의 신호의 경우, x(t)=Asin(2πft)에서 f는 신호의 주파수..

    [OpenCV] 04-10. Histograms in OpenCV (4)

    이번 장에서는 “히스토그램 배경투사”에 대해서 알아볼 것 이다.Theory이는 Michael J. Swain , Dana H. Ballard의 논문 Indexing via color histograms에서 등장했다.간단하게 뭐라고 말할 수 있을까? 이는 이미지 분할 또는 이미지에서 관심 있는 객체를 찾는데 사용된다. 간단히 말해서, 입력과 동일한 크기의 이미지를 생성하는데, 여기서 각각의 픽셀은 우리의 물체에 속하는 픽셀의 확률에 해당한다. 좀 더 단순한 말로, 출력 이미지는 관심있는 객체부분은 나머지 부분에 비해 하얗게 표시될 것 이다. 이는 직관적인 설명이다. 히스토그램 배경투사는 camshift 알고리즘등과 함께 사용된다.어떻게 해야 할까? 관심 대..

    [OpenCV] 04-10. Histograms in OpenCV (3)

    이번 장에서는, 2D 히스토그램을 찾고 그려볼 것이다. 다가올 챕터들에 있어서 도움이 될 것이다.Introduction(1)에서는 1차원 히스토그램을 계산하고 그렸었다. 하나의 특성만 다루기에 1차원이라고 부르는 것이다. (흑백 스케일 픽셀의 강도 값) 하지만 2차원 히스토그램에서는, 두 가지 특성을 고려한다. 일반적으로 두 가지 특성이 모든 픽셀의 색조&채도 값인 컬러 히스토그램을 찾는데 사용된다.컬러 히스토그램을 어떻게 만드는지 이해해볼 것이고, 앞으로 있을 히스토그램 Back-Projection을 이해하는데 유용할 것 이다.2D Histogram in OpenCV이는 다소 간단하고 cv2.calcHist() 함수를 이용하여 계산한다. 컬러 히스토그램에 대해, 이미지를 ..

    [OpenCV] 04-10. Histograms in OpenCV (2)

    이번 장에서는히스토그램 균등화의 개념에 대해서 배우고 이미지의 대조를 향상시키는데 사용할 것이다.Theory픽셀 값이 특정 값 범위에만 국한된 이미지를 고려해보자. 예를 들면, 밝은 이미지는 모든 픽셀이 높은 값으로 범위를 이룰 것이다. 하지만 좋은 이미지는 이미지의 모든 지역에서 픽셀을 가지고 있어야한다. 그래서 히스토그램을 양쪽 끝까지 늘려야 하며, 그것이 히스토그램 균등화가 하는 일이다. 이는 일반적으로 이미지의 대조를 향상시켜준다. 위키피디아 Histogram Equalization에서 자세하게 읽는 것을 추천한다. 대신에, 여기ㅣ서는 Numpy 구현하는 것을 볼 것이다. 그 이후 OpenCV 함수에 대해 볼 것이다.import cv2 import n..

    [OpenCV] 04-10. Histograms in OpenCV (1)

    이번 장에서는OpenCV와 Numpy 함수를 같이 사용하여 히스토그램을 찾는 것OpenCV와 Matplotlib 함수를 사용하여 히스토그램을 그리는 것cv2.calcHist(), np.histogram()등의 함수에 대해서 볼 것 이다.Theory그래서 히스토그램이란 무엇일까? 히스토그램을 이미지 분포의 강도에 관한 총량을 알려주는 그래프나 도표정도로 생각할 수 있다. 이는 X축에 픽셀값(항상 0부터 255는 아니다)을 나타내고 Y축에 이에 대응하는 이미지의 픽셀의 수를 나타낸다.이는 이미지를 이해하는 다른 방법일 뿐이다. 이미지의 히스토그램을 보면 이미지의 대조, 밝기, 강도 분포에 대한 직관을 얻을 수 있다. 최근의 이미지 처리 도구들은, 히스토그램에 ..