cv2.pointPolygonTest
是OpenCV中的一個函數,用於計算點到多邊形的最短距離或點是否在多邊形內。
函數的語法如下:
_, intersection = cv2.pointPolygonTest(rect3, tuple(line1_midpoint), measureDist=False)
contour
:多邊形的輪廓,可以是Numpy陣列或OpenCV的輪廓物件。point
:要計算距離的點,通常是一個(x, y)座標元組。measureDist
:指定是否計算點到多邊形的最短距離。如果為True,則返回距離值;如果為False,則返回一個整數值表示點的位置關係:正數表示點在多邊形內部、負數表示點在多邊形外部、0表示點在多邊形邊界上。
相關函數請參考: cv2.distanceTransform
另外要畫出多邊形可使用cv2.polylines
,如以下範例
import cv2
import numpy as np
# 定義長方形的四個角點
rect1 = np.array([[100, 100], [300, 100], [300, 200], [100, 200]])
# 創建空白影像
image = np.zeros((500, 500, 3), dtype=np.uint8)
# 繪製長方形
cv2.polylines(image, [rect1], True, (0, 255, 0), thickness=2)
# 顯示結果
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()