일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 웹기획
- 요구사항정의서 #기획 #UI/UX기획
- TensorFlow
- webpack
- nodejs
- Vue
- es5 #es6
- 일기
- securitykey
- Git
- angular
- PublicKey
- SSL인증서
- privateKey
- javascript #prototype # array # find()
- CSS #pseudo-classes
- passport.js
- tsotry
- 가상사설망
- guide
- Storyboard
- CSS #flex
- anaconda
- Javascript #MDN #Webs #Docs
- typescript
- 해시함수
- keytool
- behaviorsubject
- 안좋은습관10가지
- Ke
- Today
- Total
민자의 지식창고
이미지 Contour 본문
이미지 Contour
Contour 란 같은 값을 가진 곳을 연결한 선
이미지 Contour란 동일한 색 또는 동일한 색상 강도(Color Intensity)를 가진 부분의 가장 자리 경걔를 연결한 선
예를들어 지도의 등고선과 기상도와 같이 동일 선 상을 연결한 선
이미지 Counter는 이미지에 있는 물체의 모양 분석이나 객체 인식등에 유용하게 활용되는 도구
보다 정확한 이미지 Contour를 확보하기 위해 바이너리 이미지를 사용 합니다.
이미지에서 Contour를 찾기 전에 Threadhold나 edge Dectection을 적용하는 것이 좋습니다.
OpenCV의 cv2.findContours()함수는 Suzuki85 알고리즘을 이용해서 이미지의 Contour를 찾는 함수 입니다.
이 함수는 원본 이미지를 변경시키기 때문에 향후 원본 이미지를 활용하기 위해서는 원본 이미지의 복사본을 가지고 Contour를 찾는게 좋습니다.
OpenCV의 Contour는 검정색 배경에서 흰색 물체를 찾는것과 동일 합니다. 따라서 Contour를 찾고자 하는 대상은 흰색으로, 배경은 검정색으로 변경 해야 함.
import numpy as np
import cv2
def contour():
img = cv2.imread('D:/2020/test2.jpg')
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thr = cv2.threshold(imgray, 127, 255, 0)
contours, high = cv2.findContours(thr, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,0,255), 1)
cv2.imshow('thresh', thr)
cv2.imshow('contour', img)
cv2.waitKey(0)
cv2.desertAllWindows()
contour()
cv2.findContours(thr cv2,RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.findContours()함수의 첫번쨰 인자는 threshold된 이미지, 이미지에서 찾은 contour와 contour들 간의 계층 구조를 리턴 합니다.
첫번째 인자 : contour할 이미지, threshold를 통해서 변환된 바이너리 이미지
두번째 인자 : contour 추출 모드 , 2번째 리턴값이 Hierarachy의 값에 영향을 줌
cv2.RETR_TREE : 이미지의 모든 Contour를 추출하고, Contour들간의 상관 관계 추출
cv2.RETR_EXTERNAL : 이미지의 가장 바깥쪽의 Contour만 추출
cv2.RETR_LIST : contour간 계층구조 상관관계를 고려하지 않고 contour 추출
cv2.RETR_CCOMP : 이미지에서 모든 contour를 추출한 후, 2단계 계층에서 구멍(hole)의 경계 부분을 나타내는 contoru 구성
'개발노트 > OpenCV' 카테고리의 다른 글
텍스트 찾기(Text Detection) (0) | 2020.08.07 |
---|---|
모폴로지연산 (0) | 2020.08.04 |
CNN모델을 이용한 숫자 인식하기 (0) | 2020.07.27 |
이미지 필터링 -blur (1) | 2020.07.27 |
Otsu' Binarization (0) | 2020.07.24 |