关于Opencv python中 cvmat 和ndarray的转换问题

最近在用其他人的写的一个C++的标定程序,该程序输出的是XML格式的文件。但是XML的文件在Python里面调用比较繁琐,然后翻了一下Opencv的API的接口,看到有opencv-python里面的API可以直接调用将XML直接读取。

使用cv2 的接口 Load() 直接读取XML文件, load 读取的数据是cvMat的格式, 我们可以直接调用numpy.asarray将数据转换成numpy格式,下面是一个简单的示例:

import cv2.cv as cv
import numpy

calib_filename = '/path/to/my/output/of/calibration.xml'

camera_matrix = numpy.asarray(cv.Load(calib_filename, cv.CreateMemStorage(), 'camera_matrix'))
dist_coeffs = numpy.asarray(cv.Load(calib_filename, cv.CreateMemStorage(), 'distortion_coefficients'))

将numpy格式转换成cvMat格式:


import cv2.cv as cv
mat_array = cv.fromarray(numpy_array)

你可能感兴趣的:(opencv)