Python目標坐標定位是一種通過在圖像中識別特定的目標來定位該目標在圖像中的位置的方法。它在計算機視覺中得到了廣泛的應用,從智能家居的無人機導航到自動駕駛汽車的控制,這些都需要利用計算機視覺技術精準地定位目標。
import cv2 import numpy as np #讀取圖片 img = cv2.imread('target.jpg') #創建HSV空間圖像 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #設定顏色區間,這里我們設定為紅色 lower_red = np.array([0, 50, 50]) upper_red = np.array([10, 255, 255]) mask1 = cv2.inRange(hsv, lower_red, upper_red) lower_red = np.array([170, 50, 50]) upper_red = np.array([180, 255, 255]) mask2 = cv2.inRange(hsv, lower_red, upper_red) #將兩個mask圖像合并 mask = mask1 + mask2 #尋找輪廓 contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) #遍歷所有輪廓并繪制外邊框 for i in range(len(contours)): area = cv2.contourArea(contours[i]) if area >100: x, y, w, h = cv2.boundingRect(contours[i]) cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2) #顯示定位結果 cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows()
上面的代碼中,我們首先讀取了一張圖片,然后將它轉換成HSV空間圖像。接著,我們定義了紅色的顏色區間,使用cv2.inRange()函數得到了兩個紅色mask圖像,最后將它們合并。在得到了合并后的mask圖像之后,我們使用cv2.findContours()函數尋找輪廓,并使用cv2.rectangle()函數繪制目標邊框。最后,我們使用cv2.imshow()函數展示了最終的結果。