Pythonベースopencv学習練習(12)findContours()プロファイルとdrawContours()の描画

865 ワード

import cv2
 #    

img=cv2.imread('rectangle.jpg',1)
# RGB         
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
#        
ret,thresh = cv2.threshold(img_gray, 127,255,0)

contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContours(img,contours,-1, (0,0,255),3)
cv2.imshow('img',img)
cv2.waitKey(0)


findContours()は,1つ目は入力画像,2つ目は輪郭検索モード,3つ目は輪郭近似法の戻り値が2つ,1つ目は(輪郭の)クロマトグラフィー構造である.2つ目は輪郭です.輪郭(2番目の戻り値)は、この画像のすべての輪郭を格納するPythonリストです.各プロファイルは、オブジェクトの境界点(x,y)の座標を含むNumpy配列です.3番目のパラメータがcv 2に設定場合.CHAIN_APPROX_NONEは、すべての境界点が格納されます.cv2.CHAIN_APPROX_SIMPLEストレージはこの直線の2つの端点しか必要ありません.
関数cv 2.drawContours()は、輪郭を描くために使用できます.指定した境界点に基づいて任意の形状を描くことができます.最初のパラメータは元の画像で、2番目のパラメータは輪郭で、Pythonリストです.3番目のパラメータは、輪郭のインデックスです(独立した輪郭を描くのに役立ち、-1に設定するとすべての輪郭を描くことができます).次のパラメータは輪郭の色や厚さなどです.