Python 그림 찾기 윤곽,다각형 적합,최소 외 접 사각형 코드 구현
윤곽 찾기 와 다각형 적합 등 opencv 작업 을 자주 사용 하기 때문에 후속 사용 을 위해 기록 합 니 다.본 고 코드 중의 한도 값 조건 은 이미지 에 실제 적 인 의미 가 없고 단지 테스트 를 위 한 것 이다.
원본 그림:
2.테스트 코드:
import cv2
import numpy as np
img = cv2.imread('/home/yasin/coffe.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, contours, hierarchy = cv2.findContours(img_gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (255, 0, 255), 1)
cv2.namedWindow('Result of drawContours', 0)
cv2.imshow('Result of drawContours', img)
cv2.waitKey()
cnt = 0
for i in range(len(contours)):
arclen = cv2.arcLength(contours[i], True)
epsilon = max(3, int(arclen * 0.02)) # , ,
approx = cv2.approxPolyDP(contours[i], epsilon, False) #
area = cv2.contourArea(contours[i]) #
rect = cv2.minAreaRect(contours[i])
box = np.int0(cv2.boxPoints(rect)) #
h = int(rect[1][0])
w = int(rect[1][1])
if min(h, w) == 0:
ration = 0
else:
ration = max(h,w) /min(h,w) #
# , ,
if ration < 10 and area > 20 and area < 4000 and approx.shape[0] > 3 :
#
cv2.polylines(img, [approx], True, (0, 255, 0), 1)
cv2.namedWindow('Result of filtered', 0)
cv2.imshow('Result of filtered', img)
cv2.waitKey()
그 려 진 모든 윤곽:원래 의 윤곽 을 바탕 으로 선별 한 윤곽(녹색 부분,실제 의미 없 음)을 그립 니 다.
OpenCV python 윤곽(연결 영역)최소 외 접 원형
원본 그림:[cc.jpg]
import cv2
import numpy as np
def main():
# 1.
img_src = cv2.imread("cc.jpg")
# 2. ,
img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
ret, img_bin = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
# 3.
img_bin, contours, hierarchy = cv2.findContours(img_bin,
cv2.RETR_LIST,
cv2.CHAIN_APPROX_SIMPLE)
# 4.
center, radius = cv2.minEnclosingCircle(contours[0])
center = np.int0(center)
# 5.
img_result = img_src.copy()
cv2.circle(img_result, tuple(center), int(radius), (255, 255, 255), 2)
# 6.
cv2.imshow("img_src", img_src)
cv2.imshow("img_result", img_result)
cv2.waitKey()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()
처리 결과:[imgsult.jpg]이상 의 Python 은 그림 찾기 윤곽,다각형 적합,최소 외 접 사각형 코드 를 실현 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.