Mercurial > hg > nsaunier > traffic-intelligence
comparison python/calibration-translation.py @ 159:115f7f90286d
updated calibration-translation and added function to convert point correspondences
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 12 Sep 2011 16:38:47 -0400 |
| parents | 2d7c6d767a39 |
| children | b0719b3ad3db |
comparison
equal
deleted
inserted
replaced
| 158:2d7c6d767a39 | 159:115f7f90286d |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 import sys | 3 import sys |
| 4 import os | |
| 4 | 5 |
| 5 import matplotlib.mlab as pylab | 6 import matplotlib.mlab as pylab |
| 6 import matplotlib.pyplot as plt | 7 import matplotlib.pyplot as plt |
| 7 import numpy as np | 8 import numpy as np |
| 8 | 9 |
| 31 | 32 |
| 32 filenames = [f for f in utils.listfiles('.','avi')] # directory to examine should be current directory | 33 filenames = [f for f in utils.listfiles('.','avi')] # directory to examine should be current directory |
| 33 | 34 |
| 34 #referenceHomography = np.loadtxt(referenceHomographyFilename) | 35 #referenceHomography = np.loadtxt(referenceHomographyFilename) |
| 35 referenceVideoIndex = filenames.index(referenceVideoFilename) | 36 referenceVideoIndex = filenames.index(referenceVideoFilename) |
| 36 indices = set([1, 2, 3, 4, 5, 6, 7, 9, 10, 11])#set(range(len(filenames))) | 37 indices = set(range(len(filenames))) |
| 37 #indices.discard(referenceVideoIndex) | 38 indices.discard(referenceVideoIndex) |
| 38 | 39 |
| 39 images = {} | 40 images = {} |
| 40 #features = {} | 41 #features = {} |
| 41 captures = {} | 42 captures = {} |
| 42 | 43 |
| 56 cv2.putText(displayRef, str(j+1), tuple(p), cv2.FONT_HERSHEY_PLAIN, 1, (255,0,0)) | 57 cv2.putText(displayRef, str(j+1), tuple(p), cv2.FONT_HERSHEY_PLAIN, 1, (255,0,0)) |
| 57 cv2.imshow('Reference',displayRef) | 58 cv2.imshow('Reference',displayRef) |
| 58 | 59 |
| 59 for f in filenames: # get suitable image references for each video | 60 for f in filenames: # get suitable image references for each video |
| 60 captures[f] = cv2.VideoCapture(f) | 61 captures[f] = cv2.VideoCapture(f) |
| 61 # TODO if frame image already exists, no need to search for it again | 62 frameFilename = utils.removeExtension(f)+'-frame.png' # TODO if frame image already exists, no need to search for it again |
| 62 key = -1 | 63 if not os.path.exists(frameFilename): |
| 63 while key != cvutils.cvKeyNumbers['y']: | 64 key = -1 |
| 64 (ret, img) = captures[f].read() | 65 while key != cvutils.cvKeyNumbers['y']: |
| 65 cv2.imshow('Image',img) | 66 (ret, img) = captures[f].read() |
| 66 print('Can one see the reference points in the image? (y/n)') | 67 cv2.imshow('Image',img) |
| 67 key = cv2.waitKey(0) | 68 print('Can one see the reference points in the image? (y/n)') |
| 69 key = cv2.waitKey(0) | |
| 68 | 70 |
| 69 images[f] = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) | 71 images[f] = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) |
| 70 cv2.imwrite(utils.removeExtension(f)+'-frame.png', img) | 72 cv2.imwrite(frameFilename, img) |
| 71 #images[f] = cv2.imread(f, cv2.CV_LOAD_IMAGE_GRAYSCALE) | 73 else: |
| 74 images[f] = cv2.imread(frameFilename, cv2.CV_LOAD_IMAGE_GRAYSCALE) | |
| 72 #features[f] = cv2.goodFeaturesToTrack(images[f], 1000, 0.02, 2, useHarrisDetector = True, mask=maskImg) # todo put parameters on the command line ? | 75 #features[f] = cv2.goodFeaturesToTrack(images[f], 1000, 0.02, 2, useHarrisDetector = True, mask=maskImg) # todo put parameters on the command line ? |
| 73 # goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) | 76 # goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) |
| 74 # display features | 77 # display features |
| 75 if False: | 78 # if False: |
| 76 display = img.copy()#cv2.cvtColor(images[f], cv2.COLOR_GRAY2RGB) #.copy() | 79 # display = img.copy()#cv2.cvtColor(images[f], cv2.COLOR_GRAY2RGB) #.copy() |
| 77 for p in features[f]: | 80 # for p in features[f]: |
| 78 cv2.circle(display, tuple(p[0]), 3, (255,0,0)) | 81 # cv2.circle(display, tuple(p[0]), 3, (255,0,0)) |
| 79 cv2.imshow('Reference',display) | 82 # cv2.imshow('Reference',display) |
| 80 cv2.waitKey() | 83 # cv2.waitKey() |
| 81 | 84 |
| 82 plt.close('all') | 85 plt.close('all') |
| 83 | 86 |
| 84 for i in indices: | 87 for i in indices: |
| 85 t = cvutils.computeTranslation(images[filenames[referenceVideoIndex]], images[filenames[i]], referenceFeatures, 100, 10) | 88 t = cvutils.computeTranslation(images[filenames[referenceVideoIndex]], images[filenames[i]], referenceFeatures, 100, 10) |
