Mercurial Hosting > traffic-intelligence
diff python/cvutils.py @ 993:e8eabef7857c
update to OpenCV3 for python
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 16 May 2018 21:06:52 -0400 |
parents | 132d84ce9f0c |
children | 933670761a57 |
line wrap: on
line diff
--- a/python/cvutils.py Fri Apr 13 16:48:02 2018 -0400 +++ b/python/cvutils.py Wed May 16 21:06:52 2018 -0400 @@ -94,15 +94,6 @@ H, mask = cv2.findHomography(srcPoints, dstPoints, method, ransacReprojThreshold) return H - def arrayToCvMat(a, t = cv2.CV_64FC1): - '''Converts a numpy array to an OpenCV CvMat, with default type CV_64FC1.''' - print('Deprecated, use new interface') - cvmat = cv2.cv.CreateMat(a.shape[0], a.shape[1], t) - for i in range(cvmat.rows): - for j in range(cvmat.cols): - cvmat[i,j] = a[i,j] - return cvmat - def cvPlot(img, positions, color, lastCoordinate = None, **kwargs): if lastCoordinate is None: last = positions.length()-1 @@ -152,7 +143,7 @@ nFramesShown = 0 if firstFrameNums is not None: for i in xrange(len(captures)): - captures[i].set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNums[i]) + captures[i].set(cv2.PROP_POS_FRAMES, firstFrameNums[i]) while ret and not quitKey(key): rets = [] images = [] @@ -174,45 +165,45 @@ nFramesShown += step if step > 1: for i in xrange(len(captures)): - captures[i].set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNums[i]+nFramesShown) + captures[i].set(cv2.CAP_PROP_POS_FRAMES, firstFrameNums[i]+nFramesShown) cv2.destroyAllWindows() else: print('Video captures for {} failed'.format(filenames)) def infoVideo(filename): '''Provides all available info on video ''' - cvPropertyNames = {cv2.cv.CV_CAP_PROP_FORMAT: "format", - cv2.cv.CV_CAP_PROP_FOURCC: "codec (fourcc)", - cv2.cv.CV_CAP_PROP_FPS: "fps", - cv2.cv.CV_CAP_PROP_FRAME_COUNT: "number of frames", - cv2.cv.CV_CAP_PROP_FRAME_HEIGHT: "heigh", - cv2.cv.CV_CAP_PROP_FRAME_WIDTH: "width", - cv2.cv.CV_CAP_PROP_RECTIFICATION: "rectification", - cv2.cv.CV_CAP_PROP_SATURATION: "saturation"} + cvPropertyNames = {cv2.CAP_PROP_FORMAT: "format", + cv2.CAP_PROP_FOURCC: "codec (fourcc)", + cv2.CAP_PROP_FPS: "fps", + cv2.CAP_PROP_FRAME_COUNT: "number of frames", + cv2.CAP_PROP_FRAME_HEIGHT: "heigh", + cv2.CAP_PROP_FRAME_WIDTH: "width", + cv2.CAP_PROP_RECTIFICATION: "rectification", + cv2.CAP_PROP_SATURATION: "saturation"} capture = cv2.VideoCapture(filename) videoProperties = {} if capture.isOpened(): - for cvprop in [#cv2.cv.CV_CAP_PROP_BRIGHTNESS - #cv2.cv.CV_CAP_PROP_CONTRAST - #cv2.cv.CV_CAP_PROP_CONVERT_RGB - #cv2.cv.CV_CAP_PROP_EXPOSURE - cv2.cv.CV_CAP_PROP_FORMAT, - cv2.cv.CV_CAP_PROP_FOURCC, - cv2.cv.CV_CAP_PROP_FPS, - cv2.cv.CV_CAP_PROP_FRAME_COUNT, - cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, - cv2.cv.CV_CAP_PROP_FRAME_WIDTH, - #cv2.cv.CV_CAP_PROP_GAIN, - #cv2.cv.CV_CAP_PROP_HUE - #cv2.cv.CV_CAP_PROP_MODE - #cv2.cv.CV_CAP_PROP_POS_AVI_RATIO - #cv2.cv.CV_CAP_PROP_POS_FRAMES - #cv2.cv.CV_CAP_PROP_POS_MSEC - #cv2.cv.CV_CAP_PROP_RECTIFICATION, - #cv2.cv.CV_CAP_PROP_SATURATION + for cvprop in [#cv2.CAP_PROP_BRIGHTNESS + #cv2.CAP_PROP_CONTRAST + #cv2.CAP_PROP_CONVERT_RGB + #cv2.CAP_PROP_EXPOSURE + cv2.CAP_PROP_FORMAT, + cv2.CAP_PROP_FOURCC, + cv2.CAP_PROP_FPS, + cv2.CAP_PROP_FRAME_COUNT, + cv2.CAP_PROP_FRAME_HEIGHT, + cv2.CAP_PROP_FRAME_WIDTH, + #cv2.CAP_PROP_GAIN, + #cv2.CAP_PROP_HUE + #cv2.CAP_PROP_MODE + #cv2.CAP_PROP_POS_AVI_RATIO + #cv2.CAP_PROP_POS_FRAMES + #cv2.CAP_PROP_POS_MSEC + #cv2.CAP_PROP_RECTIFICATION, + #cv2.CAP_PROP_SATURATION ]: prop = capture.get(cvprop) - if cvprop == cv2.cv.CV_CAP_PROP_FOURCC and prop > 0: + if cvprop == cv2.CAP_PROP_FOURCC and prop > 0: prop = int2FOURCC(int(prop)) videoProperties[cvPropertyNames[cvprop]] = prop else: @@ -224,12 +215,12 @@ images = [] capture = cv2.VideoCapture(videoFilename) if capture.isOpened(): - rawCount = capture.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT) + rawCount = capture.get(cv2.CAP_PROP_FRAME_COUNT) if rawCount < 0: rawCount = lastFrameNum+1 nDigits = int(floor(log10(rawCount)))+1 ret = False - capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) + capture.set(cv2.CAP_PROP_POS_FRAMES, firstFrameNum) frameNum = firstFrameNum while frameNum<lastFrameNum and frameNum<rawCount: ret, img = capture.read() @@ -245,7 +236,7 @@ images.append(img) frameNum +=step if step > 1: - capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, frameNum) + capture.set(cv2.CAP_PROP_POS_FRAMES, frameNum) capture.release() else: print('Video capture for {} failed'.format(videoFilename)) @@ -254,7 +245,7 @@ def getFPS(videoFilename): capture = cv2.VideoCapture(videoFilename) if capture.isOpened(): - fps = capture.get(cv2.cv.CV_CAP_PROP_FPS) + fps = capture.get(cv2.CAP_PROP_FPS) capture.release() return fps else: @@ -300,8 +291,8 @@ colorType = 'default' capture = cv2.VideoCapture(videoFilename) - width = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)) - height = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)) + width = int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)) + height = int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)) windowName = 'frame' if rescale == 1.: @@ -313,7 +304,7 @@ key = -1 ret = True frameNum = firstFrameNum - capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) + capture.set(cv2.CAP_PROP_POS_FRAMES, firstFrameNum) if lastFrameNumArg is None: lastFrameNum = float("inf") else: @@ -374,7 +365,7 @@ cv2.imwrite('image-{{:0{}}}.png'.format(nZerosFilename).format(frameNum), img) frameNum += nFramesStep if nFramesStep > 1: - capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, frameNum) + capture.set(cv2.CAP_PROP_POS_FRAMES, frameNum) cv2.destroyAllWindows() else: print('Cannot load file ' + videoFilename) @@ -496,11 +487,11 @@ try: flags = 0 if fixK2: - flags += cv2.cv.CV_CALIB_FIX_K2 + flags += cv2.CALIB_FIX_K2 if fixK3: - flags += cv2.cv.CV_CALIB_FIX_K3 + flags += cv2.CALIB_FIX_K3 if zeroTangent: - flags += cv2.cv.CV_CALIB_ZERO_TANGENT_DIST + flags += cv2.CALIB_ZERO_TANGENT_DIST ret, camera_matrix, dist_coeffs, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None, flags = flags) except NameError: return None