#Step 1: set up storeage vectors for rest and contraction information, and # perform 2D alignment. cShape = np.shape(cRest) #Rest state rR = [0] * cShape[0] rS = [0] * cShape[0] rT = [0] * cShape[0] rPoints = [0] * cShape[0] rMeanShape = cRest[0] #start with the mean as the first shape print 'aligning shapes at rest' for i in range(cShape[0]): rPoints[i], rR[i], rS[i], rT[i] = IT.procrustesAlignment2D( rMeanShape, cRest[i]) #Contracted state cR = [0] * cShape[0] cS = [0] * cShape[0] cT = [0] * cShape[0] cPoints = [0] * cShape[0] cMeanShape = cRest[0] print 'apply the alignment of rest to contractoin' for i in range(cShape[0]): cPoints[i] = IT.apply2DTransformation(list(cCont[i]), rT[i], rR[i], rS[i]) # cPoints[i],cR[i],cS[i],cT[i]=IT.procrustesAlignment2D(cMeanShape,cCont[i]) #plot the aligned shapes f2, ax2 = plt.subplots(1, 1)
ax3[0,0].plot(cRest[i][:,0],cRest[i][:,1]*-1,'rx') ax3[0,0].plot(cCont[i][:,0],cCont[i][:,1]*-1,'ok') #ax3_1.set_xlim(100,300) #ax3_1.set_ylim(-350,-150) ax3[0,0].axis('equal') #Now align all the rest starts cShape=np.shape(cRest) rR=[0]*cShape[0] rS=[0]*cShape[0] rT=[0]*cShape[0] rPoints=[0]*cShape[0] rMeanShape=cRest[0] #start with the mean as the first shape print 'aligning shapes at rest' for i in range(cShape[0]): rPoints[i],rR[i],rS[i],rT[i]=IT.procrustesAlignment2D(rMeanShape,cRest[i]) #Contracted state cR=[0]*cShape[0] cS=[0]*cShape[0] cT=[0]*cShape[0] cPoints=[0]*cShape[0] cMeanShape=cRest[0] print 'apply the alignment of rest to contractoin' for i in range(cShape[0]): cPoints[i]=IT.apply2DTransformation(list(cCont[i]),rT[i],rR[i],rS[i]) for i in range(cShape[0]): ax3[0,1].plot(rPoints[i][:,0],rPoints[i][:,1]*-1,'or') ax3[0,1].plot(cPoints[i][:,0],cPoints[i][:,1]*-1,'xb')