type:여기 서 구분 할 때 어떤 종류의 알고리즘 을 사용 하 는 지 나타 내 는 알고리즘 입 니 다.상용 값 은 0(cv2.THRESHBINARY)
반환 값 ret:지정 한 thresh dst:대상 이미지 ret, dst = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY)3.윤곽 찾기 및 그리 기 3.1 cv2.findContours(image, mode, method[, offset]) 개요: 2 값 그림 의 윤곽 을 찾 습 니 다.검은색 은 배경 을 나타 내 고 흰색 은 물 체 를 나타 낸다.즉,검은색 배경 에서 흰색 물체 의 윤곽 을 찾 는 것 이다. 인자:
image:8 비트 단일 채널 이미지.비 0 픽 셀 값 은 1 로 보기 때문에 그림 은 2 값 그림
으로 간주 합 니 다.
mode:윤곽 검색 방식
cv2.RETR_EXTERNAL:외부 윤곽 만 검색
cv2.RETR_LIST:모든 윤곽 을 검사 하고 계층 구 조 를 구축 하지 않 습 니 다
cv2.RETR_CCOMP:모든 윤곽 을 검사 하고 2 단계 구 조 를 구축 합 니 다.위의 한 층 은 외부 경계 이 고 안의 한 층 은 내부 구멍 의 경계 정보 이다.만약 내 공 안에 또 하나의 연결 물체 가 있다 면,이 물체 의 경계 도 꼭대기 층 에 있다.
cv2.RETR_TREE:모든 윤곽 을 검사 하고 완전한 차원 구 조 를 구축 합 니 다
method:윤곽 이 비슷 한 방법
cv2.CHAIN_APPROX_NONE:모든 윤곽 점
저장
cv2.CHAIN_APPROX_SIMPLE:수평,수직,대각선 을 압축 하고 단점 만 남 깁 니 다.예 를 들 어 사각형 윤곽 은 4 개의 점 으로
offset:(선택 가능 한 매개 변수)윤곽 점 의 오프셋,형식 은 tuple 입 니 다.예 를 들 어(-10,10)윤곽 점 은 X 마이너스 방향 으로 10 개의 픽 셀 점 을 이동 하고 Y 정방 향 으로 10 개의 픽 셀 점 을 이동 하 는 것 을 나타 냅 니 다.
반환 값:
contours:윤곽 점.목록 형식,모든 요 소 는 3 차원 배열(그 모양 은(n,1,2)이 고 그 중에서 n 은 윤곽 점 의 개 수 를 나타 내 며 2 는 픽 셀 점 좌 표를 나타 낸다)은 윤곽
을 나타 낸다.
hierarchy:윤곽 간 의 차원 관 계 는 3 차원 배열 이 고 모양 은(1,n,4)이 며 그 중에서 n 은 윤곽 의 총 개 수 를 나타 내 고 4 는 4 개의 수로 각 윤곽 간 의 상호 관 계 를 나타 내 는 것 을 말한다.첫 번 째 수 는 동급 윤곽 의 다음 윤곽 번 호 를 나타 내 고,두 번 째 수 는 동급 윤곽 의 이전 윤곽 의 번 호 를 나타 내 며,세 번 째 수 는 이 윤곽 의 다음 윤곽 의 번 호 를 나타 내 고,네 번 째 수 는 이 윤곽 의 이전 윤곽 의 번 호 를 나타 낸다.
보충:윤곽 점 의 집합 목록 을 얻 으 려 면 사용 할 수 있 습 니 다.cnt = np.squeeze(contours[0])3.2 cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]) 인자:
image:윤곽 을 그 려 야 할 목표 그림 입 니 다.원 도 를 바 꿀 수 있 습 니 다.
contours:윤곽 점,상기 함수 cv2.find Contours()의 첫 번 째 반환 값
contourIdx:윤곽 의 색인 은 몇 번 째 윤곽 을 그립 니 다.-1 은 모든 윤곽 을 그립 니 다
color:윤곽 을 그 리 는 색
thickness:(선택 가능 한 매개 변수)윤곽선 의 너비,-1 은
을 채 우 는 것 을 나타 낸다.
line Type:(선택 가능 한 매개 변수)윤곽 선형,cv2.LINE 포함4,cv2.LINE_8(기본 값),cv2.LINEAA 는 각각 4 인접 선,8 영역 선,톱니 선(곡선 을 잘 나 타 낼 수 있 음)
을 나타 낸다.
hierarchy:(선택 가능 한 매개 변수)등급 구조,상기 함수 cv2.findContours()의 두 번 째 반환 값,max Level 매개 변수 와 결합 하여
을 사용 합 니 다.
max Level:(선택 가능 한 매개 변수)는 0 으로 지정 한 윤곽 만 그립 니 다.1 은 지정 한 윤곽 과 다음 단계 의 하위 윤곽 을 그립 니 다.2 는 지정 한 윤곽 과 모든 하위 윤곽 을 그립 니 다
과 같 습 니 다.
offset:(선택 가능 한 매개 변수)윤곽 점 의 오프셋
import cv2 img = cv2.imread('D:/2.jpg',1) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, dst = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY) contours,hierarchy = cv2.findContours(dst, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) cv2.drawContours(img, contours, -1, (0, 255, 0), 3) cv2.imshow('img',img) cv2.waitKey(0) 4.점 과 윤곽 위치 관계 이 기능 은 그림 의 점 과 윤곽 사이 의 최 단 거 리 를 찾 을 수 있 습 니 다.점 이 윤곽 밖 에 있 을 때 마이너스 값 을 되 돌려 주 고 점 이 내부 에 있 을 때 플러스 값 을 되 돌려 주 며 점 이 윤곽 에 있 으 면 0 을 되 돌려 줍 니 다.dist = cv2.pointPolygonTest(cnt, (100, 100), True)검사(100,100)와 윤곽(cnct)의 거리 함수 에서 두 번 째 매개 변 수 는 tuple 형식 이 필요 합 니 다.세 번 째 매개 변 수 는 measureDist 입 니 다.True 라면 거 리 를 찾 습 니 다.False 라면 이 점 이 내부 인지 외부 인지 윤곽 인지 찾 습 니 다.(각각+1,-1,0 으로 되 돌아 갑 니 다) 거리 가 필요 하지 않 으 면 세 번 째 매개 변 수 를 False 로 확보 하 십시오.시간 이 걸 리 는 과정 이기 때 문 입 니 다.따라서 이 를 False 로 설정 하면 2-3 배의 가속 을 제공 할 수 있다. 5.직선 의합 fitline 함수output = cv2.fitLine(InputArray points, distType, param, reps, aeps)인자:
InputArray Points:적합 한 직선 집합 은 행렬 형식(예 를 들 어 numpy.array)
이 어야 합 니 다.
distType:거리 유형.fitline 은 거리 최소 화 함수 로 직선 을 맞 출 때 입력 점 에서 직선 을 맞 추 는 거리 와 최소 화 를 해 야 합 니 다.이곳 의 거리의 유형 은 다음 과 같은 몇 가지 가 있다.
reps,aeps:5/6 번 째 매개 변 수 는 의합 직선 에 필요 한 직경 방향 과 각도 정 도 를 나타 내 는 데 사용 되 며,일반적으로 두 값 은 모두 1e-2 로 설정 된다.
반환 값: output:2 차원 직선 에 대해 출력 output 는 4 차원 이 고 앞의 2 차원 은 의합 한 직선 방향 을 대표 하 며 뒤의 두 자 리 는 직선 상의 한 점 을 대표 합 니 다.(사선 loc = np.array(loc) output = cv2.fitLine(loc, cv2.DIST_L2, 0, 0.01, 0.01) k = output[1] / output[0] b=output[3]-k*output[2]\#k[key]오류? 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: