Python 에서 OpenCV 가 윤곽 을 찾 는 인 스 턴 스 를 실현 합 니 다.
코드:contours.py
OpenCV 는findContours함수 로 윤곽 을 찾 습 니 다.이치 화 된 그림 을 입력 하고 옵션 을 지정 하여 호출 하면 됩 니 다.
우 리 는 다음 그림 을 예시 로 한다.
이치 화 이미지
코드 공학
data/
은 강아지 와 빨 간 공의 이치 화 마스크 이미 지 를 제공 합 니 다.미리 훈련 된 인 스 턴 스 분할 모델 을 사용 하여 생 성 되 었 으 며 스 크 립 트 를 볼 수 있 습 니 다detectron2_seg_threshold.py.모델 검출 결 과 는 다음 과 같다.
모델 용 마스크 R-CNN 은 이미 예측 테두리 가 있다.그러나 다른 모델 은 예측 마스크 만 나 올 수 있 으 며,이때 테 두 리 를 원 하면 OpenCV 로 추출 할 수 있다.
본 논문 코드 도 색 역 에 따라 빨 간 공 마스크 를 얻 는 방법 을 제공 했다.
import cv2 as cv
import numpy as np
#
img = cv.imread(args.image, cv.IMREAD_COLOR)
# HSV ,
def _threshold_hsv(image, lower, upper):
hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
mask = cv.inRange(hsv, lower, upper)
result = cv.bitwise_and(image, image, mask=mask)
return result, mask
_, thres = _threshold_hsv(img, np.array([0,110,190]), np.array([7,255,255]))
# ( )
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3), (1, 1))
thres = cv.morphologyEx(thres, cv.MORPH_OPEN, kernel)
윤곽 찾기
#
# cv.RETR_EXTERNAL:
contours, hierarchy = cv.findContours(
threshold, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# , ( )
contours_poly = [cv.approxPolyDP(c, 3, True) for c in contours]
#
h, w = threshold.shape[:2]
drawing = np.zeros((h, w, 3), dtype=np.uint8)
for i in range(len(contours)):
cv.drawContours(drawing, contours_poly, i, (0, 255, 0), 1, cv.LINE_8, hierarchy)
경계 상자 가 져 오기boundingRect
경계 상 자 를 가 져 오고 그립 니 다:
for contour in contours_poly:
rect = cv.boundingRect(contour)
cv.rectangle(drawing,
(int(rect[0]), int(rect[1])),
(int(rect[0]+rect[2]), int(rect[1]+rect[3])),
(0, 255, 0), 2, cv.LINE_8)
minEnclosingCircle
경계 권 을 가 져 오고 그립 니 다:
for contour in contours_poly:
center, radius = cv.minEnclosingCircle(contour)
cv.circle(drawing, (int(center[0]), int(center[1])), int(radius),
(0, 255, 0), 2, cv.LINE_8)
레 퍼 런 스
OpenCV Tutorials / Image Processing
여기 서 OpenCV 가 윤곽 을 찾 는 인 스 턴 스 를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 OpenCV 가 윤곽 을 찾 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 2017에서 OpenCV 템플릿 프로젝트 만들기・Windows 7 Professional 64bit ・Visual Studio 2017 Version 15.9.14 · OpenCV 3.4.1 OpenCV의 도입 방법 등은 아래를 참조하십시오. Visual Stu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.