Zi 字媒體
2017-07-25T20:27:27+00:00
示範
import cv2
# 讀取圖片
img = cv2.imread('D:\\hand.png')##圖片位置要修改
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 160, 170, cv2.THRESH_BINARY,10)
# 尋找圖像中的輪廓
image, contours, hierarchy = cv2.findContours(thresh, 2, 1)
# 尋找凸殼並畫出輪廓迴圈
for cnt in contours:
hull = cv2.convexHull(cnt)
length = len(hull)
# 如果凸殼點數大於35
if length > 35:
M = cv2.moments(cnt)#將中心座標帶入M
if M["m00"] != 0:#由於除數不能為0所以一定要先設判斷式才不會出錯
cx = int(M["m10"] / M["m00"])#找出中心的x座標
cy = int(M["m01"] / M["m00"])#找出中心的y座標
# 畫出圖像輪廓
for i in range(length):
cv2.line(img, tuple(hull[i][0]), (cx, cy), (0, 0, 255), 2)#從凸包輪廓連線到中心輪廓
cv2.line(img, tuple(hull[i][0]), tuple(hull[(i+1)%length][0]), (0,0,255), 2)#從凸包輪廓連線到中心輪廓
cv2.circle(img, (cx, cy), 10, (255, 0, 0), -1)#依照中心座標畫出圓點
cv2.putText(img,"centet contours:",(cx+10,cy),cv2.FONT_HERSHEY_COMPLEX_SMALL,1,(20,255,0),2)#書寫文字
cv2.putText(img, "("+str(cx)+","+str(cy)+")", (cx + 10, cy+20), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (20, 255, 0), 2)#書寫文字
cv2.imshow('finger', img)
cv2.waitKey()
展示
[Python] Python學習總集
寫了
5860316篇文章,獲得
23313次喜歡