Python 그림 찾기 윤곽,다각형 적합,최소 외 접 사각형 코드 구현

1.개술
윤곽 찾기 와 다각형 적합 등 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 은 그림 찾기 윤곽,다각형 적합,최소 외 접 사각형 코드 를 실현 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기