坐標已經被顯示出來了。 第一個X-Y坐標。(131,133) 第二個:(28,242) 第三:(99,328) 第四:(111,321) ...
我需要找到2個連續的點之間的線性距離。就是說:
- 第二和第三點之間的距離
- 第二和第一坐標之間的距離,
- 第三座標和第二座標之間的距離, 。
- 第四和第三座標之間的距離。 ...
舉例說明。(131,133) & (28,242)
距離使用√[(x?-x?)2 (y?-y?)2]。
請問誰能幫忙? 謝謝!
代碼:
import cv2
[print(i) for i in dir(cv2) if 'EVENT' in i]。
# 匯入模塊
import cv2
# function to display the coordinates of
# 在影像上點擊的點的坐標。
def click_event(event, x, y, flags, params)。
# 檢查滑鼠的左鍵點擊。
if event == cv2.EVENT_LBUTTONDOWN:
# 顯示坐標 if event == cv2.EVENT_LBUTTONDOWN.
#在Shell上。
print(x, ' '/span>, y)
# 顯示坐標。
#在影像視窗上。
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, str(x) ', '
str(y), (x, y), font,
1, (255, 0, 0),2)
cv2.imshow('image', img)
# 檢查滑鼠右鍵點擊。
if event == cv2.EVENT_RBUTTONDOWN:
# 顯示坐標 if event == cv2.EVENT_RBUTTONDOWN.
#在Shell上。
print(x, ' '/span>, y)
# 顯示坐標。
#在影像視窗上。
font = cv2.FONT_HERSHEY_SIMPLEX
b = img[y, x, 0]
g = img[y, x, 1]
r = img[y, x, 2]
cv2.putText(img, str(b) ', '
str(g) ',' str(r)。
(x, y), font, 1,
(255, 255, 0), 2)
cv2.imshow('image', img)
# driver function[/span]。
if __name__ == "__main__"/span>:
# 讀取影像。
img = cv2.imread('shirt.jpg'/span>, 1)
img = cv2.resize(img, (0, 0), None, 0.2, 0.2)
# 顯示影像 # 顯示影像
cv2.imshow('image', img)
# 為影像設定滑鼠哈德勒。
# 并呼叫click_event()函式。
cv2.setMouseCallback('image', click_event)
# 等待一個鍵被按下以退出。
cv2.waitKey(0)
#關閉視窗
cv2.destroyAllWindows()
uj5u.com熱心網友回復:
你可以創建一個接受2個點作為引數并回傳它們之間距離的函式:
def distanceCalculate(p1,p2)。 # p1和p2的格式為(x1,y1)和(x2,y2)圖元。
dis=((p2[0]-p1[0])**2 (p2[1]-p1[1])**2)**0。 5
dis=abs(dis) #去掉負號。
return dis
編輯。 第三行'dis=abs(dis)'并沒有改變任何東西。可以忽略不計
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/320323.html
標籤:

