전체 글(472)
-
[OpenCV-python] Contour 응용하기 2
contour 응용하기 2 Convex Hull Convex Hull(볼록체) 사용하여 오목한 부분이 있는지 체크하고 있다면 없애버리는 것을 말합니다. 제가 손으로 그린 모자입니다. 이 그림에는 오목한 부분이 있는지 두군대가 있는데요 contour을 오목한 부분에 안가고 볼록한 부분으로만 가게 만들어 보겠습니다. 예제 코드 import cv2 img = cv2.imread('images/hat.png') img1 = img.copy() imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thr = cv2.threshold(imgray, 127, 255, cv2.THRESH_BINARY) _, contour, _ = cv2.findContours(thr, cv2.R..
2018.06.08 -
[OpenCV-python] Contour 응용하기 1
Contour 응용 1 이번 시간에는 contour의 호, 둘레와 근사법 등등의 폐곡선 Contour의 특성에 대해 알아보겠습니다. 이미지 모멘트 폐곡선 객체의 무게중심, 객체의 면적등의 특성을 계산할 때 유용합니다. cv2.moments는 이미지 모멘트를 계산하고 이를 사전형 자료에 담아 리턴합니다. 공간 모멘트 m00, m01, m10, m11, m20, m02, m30, m21, m12, m03 중심 모멘트mu20, mu11, mu02, mu30, mu21, mu12, mu03 평준화된 중심 모멘트 nu20, nu11, nu02, nu30, nu21, nu03 여기서 m00은 폐곡선의 면적을 뜻한다. cv2.moments의 인자는 numpy array 1xN 또는 Nx1의 형태이다. import c..
2018.06.07 -
[OpenCV-python] Contour
Contour contour란 같은 값을 가진 값들을 하나의 선으로 연결하는 것을 뜻한다. 예를 들어 위도나 등고선 같은 수치를 가진 것 들을 선으로 연결 할 수 있다. contour를 사용하기 위해선 비트값 이미지를 사용해야 하는데 이미지를 비트 값으로 만들기 위해서는 threshold나 canny를 사용해서 변경 시켜주어야 한다. 그리고 opencv에서 contours 찾기는 검은색 배경에 흰색 배경을 찾는 것이 좋습니다. 예제코드 import cv2 img = cv2.imread('images/ironMan.PNG') imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thr = cv2.threshold(imgray, 70, 255, cv2.THRESH_BI..
2018.06.07 -
[OpenCV-python] Otsu_Thresh
Otsu_Thresh global Thresholder에서 가장 적합한 문턱값은 어떻게 구할 수 있을 까요?? 이는 직접 숫자를 넣어보며 시행착오를 거쳐서 구할 수 있습니다. 만약 이미지가 두개의 봉우리 값을 갖고 있다면 이 사이의 값이 가장 적절한 문턱 값입니다. Otsu_Binarization는 이미지 히스토 그램을 분석 후 그 중간 값을 가지고 thresholding 합니다. Otsu_Binarization는 cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)에서 cv2.THRESH_BINARY에 cv2.THRESH_OTSU을 더하고 문턱 값을 0으로 집어 넣어 주면 cv2.threshold가 적절한 문턱 값을 찾아서 적용시켜줍니다. i..
2018.06.06 -
[OpenCV-python] adaptive Threshold
adaptive Threshold global Threshold는 문턱 값을 하나의 이미지 전체에 적용시키는 반면 adaptive Threshold는 이미지의 구역구역마다 threshold를 실행 시켜주는 것이다. 그럼 아래의 함수를 보자 cv2.adaptiveThreshold(img, value, adaptivemethod, thresholdType, blocksize, C) img: grayscale 이미지value: adaptivemethod에 의해 계산된 문턱 값과 thresholdType에 의해 픽셀에 적용될 최대 값 adaptive method: 사용할 문턱값 계산 알고리즘 cv2.ADAPTIVE_THRESH_GAUSSIAN_C: X, Y를 중심으로 block Size * block Size ..
2018.06.06 -
[OpenCv-python 사용법] global Threshold
Thresholding 문턱값 여러 분은 중고등 학교때 문턱 전압이라는 것을 배웠을 겁니다. 문턱전압은 어느 값 이상으로 커지게 된다면 을 갖게 되고 작아진다면 0이되는 것을 뜻합니다. 이것을 이미지에 사용하여 프로그래머가 작성한 어떤 값에 따라 1이 되기도 하고 0이 되기도 하는 것이 Thresholding입니다. global Threshold 우선 global Threshold는 하나의 이미지에 전역으로 적용될 하나의 문턱 값을 이용해 threshold를 시켜줍니다. 쉽게 말해서 하나의 이미지 전체에 하나의 문턱 값만을 사용하는 것 입니다. 그럼 실제로 쓰이는 함수에 대해 알아 봅시다. cv2.threshold(img, 문턱값, value, flag) img 데이터 value 문턱값 보다 클때 나타낸..
2018.06.06