2

cv2.triangulatePoints からの出力は、同次座標で再構成された点の 4xN 配列として指定されます。

この出力を、cv2.perspectiveTransform への src 配列入力として使用したいと考えています。src は、2 チャネルまたは 3 チャネルの浮動小数点配列として指定されます。

パースペクティブトランスフォームに収まるように triangulatePoints 出力配列を操作する正しい方法は何でしょうか?

4

1 に答える 1

0

これは私がそれを理解するのを助けました:

http://answers.opencv.org/question/252/cv2perspectivetransform-with-python/

これが私がそれを実装した方法です:

    Tpoints1 = cv2.triangulatePoints(P_1, P_2, normRshp1, normRshp2)         
    #Grab the first three columns from the results to make a 3-N array
    Tpt1 = np.array([Tpoints1[0],Tpoints1[1],Tpoints1[2]])
    #Reshape to make a N-3 array
    Tpt1 = Tpt1.reshape(-1,3)
    #Make an array from the array resulting in [1,N,3]
    Tpt1 = np.array([Tpt1])
    #Reshape camera matrix to a 4x4 for input into perspectiveTransform 
    #we'll just add zeros and a one to the last row.
    # from the TestTriangualtion function @, 
    #https://github.com/MasteringOpenCV/code/blob/master/Chapter4_StructureFromMotion/FindCameraMatrices.cpp
    P_24x4 = resize(P_2,(4,4))
    P_24x4[3,0] = 0
    P_24x4[3,1] = 0
    P_24x4[3,2] = 0
    P_24x4[3,3] = 1 
    Tpoints1_projected = cv2.perspectiveTransform(Tpt1, P_24x4)
于 2013-10-16T00:08:38.073 に答える