comparison scripts/compute-homography.py @ 640:fe34c0f79c32

cleaner import that does not rely on StringIO or yaml
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 09 Apr 2015 13:21:22 +0200
parents 4e7925cb4f8f
children 0421a5a0072c
comparison
equal deleted inserted replaced
639:4e7925cb4f8f 640:fe34c0f79c32
79 homography = np.array([]) 79 homography = np.array([])
80 if args.pointCorrespondencesFilename is not None: 80 if args.pointCorrespondencesFilename is not None:
81 worldPts, videoPts = cvutils.loadPointCorrespondences(args.pointCorrespondencesFilename) 81 worldPts, videoPts = cvutils.loadPointCorrespondences(args.pointCorrespondencesFilename)
82 homography, mask = cv2.findHomography(videoPts, worldPts) # method=0, ransacReprojThreshold=3 82 homography, mask = cv2.findHomography(videoPts, worldPts) # method=0, ransacReprojThreshold=3
83 elif args.tsaiCameraFilename is not None: # hack using PDTV 83 elif args.tsaiCameraFilename is not None: # hack using PDTV
84 from StringIO import StringIO
85 from pdtv import TsaiCamera 84 from pdtv import TsaiCamera
86 import yaml
87 f = storage.openCheck(args.tsaiCameraFilename, quitting = True) 85 f = storage.openCheck(args.tsaiCameraFilename, quitting = True)
88 content = storage.getLines(f) 86 content = storage.getLines(f)
89 #out.write('data_class: TsaiCamera\n') 87 cameraData = {}
90 yamlContent = ''.join([l.replace(' f:', 'f:').replace(' k:', 'k:').replace(',','.')+'\n' for l in content]) 88 for l in content:
91 cameraData = yaml.load(StringIO(yamlContent)) 89 tmp = l.split(':')
90 cameraData[tmp[0]] = float(tmp[1].strip().replace(',','.'))
92 camera = TsaiCamera(Cx=cameraData['Cx'], Cy=cameraData['Cy'], Sx=cameraData['Sx'], Tx=cameraData['Tx'], Ty=cameraData['Ty'], Tz=cameraData['Tz'], dx=cameraData['dx'], dy=cameraData['dy'], f=cameraData['f'], k=cameraData['k'], r1=cameraData['r1'], r2=cameraData['r2'], r3=cameraData['r3'], r4=cameraData['r4'], r5=cameraData['r5'], r6=cameraData['r6'], r7=cameraData['r7'], r8=cameraData['r8'], r9=cameraData['r9']) 91 camera = TsaiCamera(Cx=cameraData['Cx'], Cy=cameraData['Cy'], Sx=cameraData['Sx'], Tx=cameraData['Tx'], Ty=cameraData['Ty'], Tz=cameraData['Tz'], dx=cameraData['dx'], dy=cameraData['dy'], f=cameraData['f'], k=cameraData['k'], r1=cameraData['r1'], r2=cameraData['r2'], r3=cameraData['r3'], r4=cameraData['r4'], r5=cameraData['r5'], r6=cameraData['r6'], r7=cameraData['r7'], r8=cameraData['r8'], r9=cameraData['r9'])
93 homography = cvutils.computeHomographyFromPDTV(camera) 92 homography = cvutils.computeHomographyFromPDTV(camera)
94 elif args.videoFrameFilename is not None and args.worldFilename is not None: 93 elif args.videoFrameFilename is not None and args.worldFilename is not None:
95 worldImg = plt.imread(args.worldFilename) 94 worldImg = plt.imread(args.worldFilename)
96 videoImg = plt.imread(args.videoFrameFilename) 95 videoImg = plt.imread(args.videoFrameFilename)