Python-이론/python-opencv(29)
-
[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] 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 -
[OpenCv-python 기초 사용법] 이미지 연산처리를 통해 합성하기
이미지 연산처리를 통해 합성하기 1 단순히 더해보기 우선 이기능을 실행 시키기 위해선 두 이미지의 크기가 동일해야한다. 만약 +를 이용해서 더했을 때는 255가 넘어가면 256을 나눈 값으로 대체한다. 하지만 cv2.add(src1, src2)를 사용할때 에는 255보다 크면 그냥 255로 값을 정한다. 예제 코드 import cv2 import numpy ironMan = cv2.imread('images/ironMan.PNG') thor = cv2.imread('images/thor.jpg') thor = cv2.resize(thor, None, fx=702/thor.shape[1], fy=400/thor.shape[0]) #둘의 이미지크기를 같게 만들어줌 plusImg = ironMan+thor a..
2018.05.31 -
[OpenCV-python 기초]:이미지 픽셀 조작 및 ROI(관심영역)
OpenCV:이미지 픽셀 조작 및 ROI(관심영역) roi(관심영역)이란 자기가 지금 작업하려는 특정구역을 뜻합니다. 한구역의 픽셀값 얻어오기 import cv2 img = cv2.imread('images/ironMan.PNG') print(img[155,15]) 위의 픽셀값을 img[155,15] = [0,0,0]의 형태로 변형가능하다. 하지만 이같은 방법은 성능상에서 문제를 발생시킬 수 있다. 그래서 우리는 img.item을 사용하겠다 import cv2 img = cv2.imread('images/ironMan.PNG') #첫인자 두번째인자는 픽셀값 세번째 인자는 0 파란색, 1 초록색, 2 빨간색 #img.itemset((120,150,0), 100) B = img.item(120,150,0) ..
2018.05.30