[OpenCV] 체적측량 프로젝트_Image detection 관련 함수 정리

yoonseok choi·2022년 9월 27일
0

체적측량 프로젝트를 진행하면서 몰랐던 메소드에 대해서 정리

cv2.adaptiveThreshold (src, maxValue, adaptiveMethod, thresholdType, blockSize, C)

Parameters:	
src – grayscale image
maxValue – 임계값
adaptiveMethod – thresholding value를 결정하는 계산 방법
thresholdType – threshold type
blockSize – thresholding을 적용할 영역 사이즈
C – 평균이나 가중평균에서 차감할 값

cv2.findContour(ssrc, mode, method, contours, hierarchy, offset)

src: 입력 영상, 검정과 흰색으로 구성된 바이너리 이미지
mode: 컨투어 제공 방식 (cv2.RETR_EXTERNAL: 가장 바깥쪽 라인만 생성, cv2.RETR_LIST: 모든 라인을 계층 없이 생성, cv2.RET_CCOMP: 모든 라인을 2 계층으로 생성, cv2.RETR_TREE: 모든 라인의 모든 계층 정보를 트리 구조로 생성)
method: 근사 값 방식 (cv2.CHAIN_APPROX_NONE: 근사 없이 모든 좌표 제공, cv2.CHAIN_APPROX_SIMPLE: 컨투어 꼭짓점 좌표만 제공, cv2.CHAIN_APPROX_TC89_L1: Teh-Chin 알고리즘으로 좌표 개수 축소, cv2.CHAIN_APPROX_TC89_KCOS: Teh-Chin 알고리즘으로 좌표 개수 축소)
contours(optional): 검출한 컨투어 좌표 (list type)
hierarchy(optional): 컨투어 계층 정보 (Next, Prev, FirstChild, Parent, -1 [해당 없음])
offset(optional): ROI 등으로 인해 이동한 컨투어 좌표의 오프셋

cv2.contourArea(contour, oriented=None)

외곽선이 감싸는 영역의 면적을 반환합니다
• contour: 외곽선 좌표. numpy.ndarray. shape=(K, 1, 2)
• oriented: True이면 외곽선 진행 방향에 따라 부호 있는 면적을 반환. 기본값은 False.

cv2.aruco.detectMarkers

detectMarkers() 메서드를 사용하여 이미지에서 마커를 감지하는 것

cv2.polylines(img, pts, isClosed, color, thickness, lineType)

img: 그림을 그릴 이미지 파일 
pts: 연결할 꼭짓점 좌표, Numpy array
isClosed: 닫힌 도형 여부, True/False
color: BGR형태의 선 색상 (ex; (255, 0, 0) -> Blue) 
thickness (int): 선의 두께. pixel (default=1)
lineType: 선 그리기 형식 (cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA)

cv2.arcLength(curve, closed)

외곽선 길이를 반환합니다.
• curve: 외곽선 좌표. numpy.ndarray. shape=(K, 1, 2)
• closed: True이면 폐곡선으로 간주

cv2.minAreaRect(cnt)

주어진 점을 감싸는 최소 크기 회전된 사각형을 반환합니다.
인자로 입력한 contour에 외접하면서 면적이 가장 작은 직사각형을 구하는 데 활용.

cv2.boxPoints(rect)

minAreRect()함수로 얻은 rect의 꼭지점 4개의 좌표를 얻기 위해 사용

cv2.putText(img, text, org, font, fontScale, color, thickness, lineType)

text: 표시할 문자열 
org: 문자열을 표시할 위치(좌측 하단 기준) (x, y)
font: 글꼴(cv2.FONT_XXXX 형식) 
fontScale: 글꼴 크기

parameters = cv2.aruco.DetectorParameters_create()

Create a new set of DetectorParameters with default values.

aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_5X5_50)

5x5 bits, minimum hamming distance between any two codes = 8, 50 codes
- 해밍거리 : 두 문자열의 같은 위치에 있는 두 문자를 비교해 다른 문자의 수를 세는 것 
-> 에러 감지

https://docs.opencv.org/4.x/d9/d6a/group__aruco.html
(OpenCV-ArucoMarker.docs)

profile
Concilio et Labore ( 지혜와 노력으로 )

0개의 댓글