所以我的目標是在opencv中畫一條在第二個給定點之后連續的線。
我畫了一張應該更好地解釋它的影像。綠色繪圖是我想要的線。它從第 1 點開始,并沒有在第 2 點結束。

非常感謝您的幫助
uj5u.com熱心網友回復:
在兩點之間畫一條線就像畫一個三角形。通過使用 x 和 y 軸上較大的距離,我得到了一個比例,并將我的三角形擴大到螢屏尺寸,我達到了你想要的線。
import cv2
import numpy as np
sizeofscr = 500
blank_image = np.zeros((sizeofscr,sizeofscr,3), np.uint8)
p1 = (290,230)
p2 = (100,100)
blank_image = cv2.circle(blank_image, p1, 10, (255, 0, 0), 2)
blank_image = cv2.circle(blank_image, p2, 10, (255, 0, 0), 2)
fx = abs(p1[0] - p2[0])
fy = abs(p1[1] - p2[1])
if (p1[0] p1[1]) > (p2[0] p2[1]):
if fx < fy:
temp = abs(sizeofscr - p1[1]) / fy
fx = (temp * fx) p1[0]
fy = (temp * fy) p1[1]
blank_image = cv2.line(blank_image,(int(fx),int(fy)),p2,(0,0,255),3)
else:
temp = abs(sizeofscr - p1[0]) / fx
fx = (temp * fx) p1[0]
fy = (temp * fy) p1[1]
blank_image = cv2.line(blank_image,(int(fx),int(fy)),p2,(0,0,255),3)
else:
if fx < fy:
temp = abs(sizeofscr - p1[1]) / fy
fx = (temp * fx) p1[0]
fy = (temp * fy) p1[1]
blank_image = cv2.line(blank_image,(int(fx),int(fy)),p1,(0,0,255),3)
else:
temp = abs(sizeofscr - p1[0]) / fx
fx = (temp * fx) p1[0]
fy = (temp * fy) p1[1]
blank_image = cv2.line(blank_image,(int(fx),int(fy)),p1,(0,0,255),3)
cv2.imshow("test",blank_image)
cv2.waitKey(0)
結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/435697.html
