개발차

    [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축에 이에 대응하는 이미지의 픽셀의 수를 나타낸다.이는 이미지를 이해하는 다른 방법일 뿐이다. 이미지의 히스토그램을 보면 이미지의 대조, 밝기, 강도 분포에 대한 직관을 얻을 수 있다. 최근의 이미지 처리 도구들은, 히스토그램에 ..

    [OpenCV] 04-9. Contours (5)

    이번 장에서는, Contours의 층에 대해서 알아볼 것이다.(Contours의 부모-자식 관계)Theorycv2.findContours() 함수를 이용하여 이미지의 contours를 찾게되면, Contour Retrival Mode 인자를 넘겨야한다. 보통은 cv2.RETR_LIST 나 cv2.RETR_TREE를 사용하고 작동도 잘한다. 하지만 사실상 의미하는 것이 무엇일까?결과에서 또한, 3가지 arrays를 얻는데, 첫 번째는 이미지, 두 번째는 contours, 나머지 하나는 “계층”이라 불리우는 것이다. 하지만 이 계층을 어디에서도 쓴적이 없다. 그러면 계층은 무엇이고 어디에 사용될까? 이전에 언급했던 인자들과는 무슨 관계가 있는 것일까?이번 장에서 다루게..

    [OpenCV] 04-9. Contours (4)

    이번 장에서는Convexity defects와 이를 어떻게 찾아내는지를 볼 것이다점에서 다각형까지의 최단 거리를 찾을 것이다.다른 모양들을 매칭시킬 것이다.Theory and Code1. Convexity Defects두 번째 장에서 convex hull이 무엇인지 보았다. 이 hull에서 객체의 이탈은 convexity defect로 간주될 수 있다.OpenCV는 이를 찾을 수 있는 완성된 함수인 cv2.convexityDefects() 를 제공한다. 기본 함수는 다음과 같다.hull = cv2.convexHull(cnt,returnPoints = False) defects = cv2.convexityDefects(cnt,hull) convex hul..

    [OpenCV] 04-9. Contours (3)

    여기서는 고체성(Solidity), 등가 지름(Equivalent Diameter), 마스크 이미지, 평균 강도등과 같이 자주 사용되는 물체의 특성을 추출하는 방법을 배울 것이다. 자세한 내용은 Matlab regionprops문서에서 확인할 수 있다. Matlab regionprops documentation.1. Aspect Ratio이 비율은 객체의 bounding rect의 높이에 대한 폭의 비율이다.AspectRatio=WidthHeightx,y,w,h = cv2.boundRect(cnt) aspect_ratio = float(w)/h 2. ExtentExtent는 bounding rec 영역에 대한 contour 영역의 비율이다.Extent=ObjectA..