我使用下面的代码打印线上每个点的坐标
首先,我用两个坐标在黑色的2D平面上画了一条线
第二,我用两点的坐标来计算斜率和截距
第三,我在二维平面上打印直线上所有点的坐标
我认为我不够聪明,不能做这件事。虽然我能解决这个问题,但这不是一个容易的办法
我的代码:
import cv2
import numpy as np
y1=-304 #point1_y
y2=477 #point2_y
x1=-957 #point1_x
x2=883 #point2_x
img=np.zeros((300,300,3),np.uint8)
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),3)
cv2.imshow('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
k=(y2-y1)/(x2-x1)
b = y1 - k*x1
for x in range(1,300):
y=k*x+b
print(x,y)
结果图像:
坐标信息:
1 102.62934782608696
2 103.05380434782609
3 103.47826086956522
4 103.90271739130435
5 104.32717391304348
6 104.75163043478261
7 105.17608695652174
8 105.60054347826087
9 106.025
10 106.44945652173914
……
对于opencv,是否有简单的方法输出线上的每个点?
下面是使用Python/OpenCV/Numpy获取与图像中像素相交的直线坐标的一种方法。我使用np.argwhere获取图像中非零强度像素的坐标
进口cv2 将numpy作为np导入
我不知道使用opencv是否可行,但是使用numpy也是可行的(因为您在代码中使用numpy,我假设您可以这样做)
相关问题 更多 >
编程相关推荐