嘿嘿!
我有一个平面的图像(从上面拍摄,角度为30°),我想要一个特定像素的x&y坐标,但以厘米为单位(坐标系在曲面中)。
有没有办法存档?
我正在使用python,但如果有任何帮助,我将不胜感激!:)
编辑:
我尝试了同音字法从下面,但我没有安静设法使它工作。她就是我所做的:#two sets of points I used
#src: corners + center of my 400px*460px image
#dst: coordinate system being outside the image
src = np.matrix(((1, 1, 1),(400, 1, 1),(1, 460, 1),(400, 460, 1),(200,230,1)))
dst= np.matrix(((31.6, 7, 1),(14.5, 7, 1),(28.4, 26.3, 1),(17, 26.3, 1),(22.6,18.6,1 )))
#src: random points from the image of my 400px*460px image
#dst: coordinate system being in the actual image
src = np.matrix(((1, 1, 1),(400, 460, 1),(200,1,1), (100, 170, 1), (280, 320, 1),(300, 50, 1)))
dst= np.matrix(((0, 0, 1),(14.6, 19.3, 1),(17.1/2,0,1), (5.0, 9.2, 1), (11.65, 15.3, 1), (12.9, 2.9, 1) ))
H = cv2.findHomography(src,dst,0)[0]
print (H)
for c in range(0,5):
x= c*100
y = 1
print(x,y,np.dot(H,np.array((x,y,1))))
Actual Photo of the setup
正方形是(400px*460px)图片上可见的区域。摄像机位于右边的黑盒子里。X&Y是我的像素坐标。
只要你保持在x轴上,两组数字的结果都是好的。一旦我沿着y轴向下移动,数字就会出错。在