[英]Python OpenCV Box2D
我试图从python中调用OpenCV函数MinAreaRect2。 我使用OpenCV 2.4.2与python 2.7和numpy 1.6。 我走了这么远:
import cv
def nda2ipl(arr, dtype=None):
return cv.fromarray(np.ascontiguousarray(arr, dtype=dtype))
def min_area_rect2(points):
storage = cv.CreateMemStorage()
cv_points = nda2ipl(points.reshape((-1, 1, 2)))
out = cv.MinAreaRect2(cv_points, storage)
return out
我可以用形状的ndarray(N x 2)来调用这个函数。 我得到了这样的结果:
((476.5, 604.5), (951.0, 1207.0), -0.0)
我假设第一个元组是盒子的中心,第二个元素是宽度和高度,最后一个是角度。
问题是我无法得到明确的参考说明。 实际上,opencv文档告诉我函数在Python中返回什么。
python中MinAreaRect2的输出究竟是什么? 更一般地说,在哪里可以获得有关OpenCV python包装器的精确文档?
OpenCV Python包装器文档与同一站点www.docs.opencv.org中的常规文档一起保存
早期使用的Python模块是cv
接口,它使用原始C ++接口的原生数据类型,如cvMat,cvSeq等。
后来它被转移到更好,更先进和更简单的模块cv2
接口。 在其中,所有内容都返回为Numpy数组或本机python数据类型。
这里,返回的元组具有与cvBox2D相同的参数。 你可以在这里找到不同python包装器之间差异的更多细节: 所有这些OpenCV Python接口有什么不同?
在这里,您的假设是正确的。 这些值完全符合您的提及。
如果要绘制旋转的矩形,则需要矩形的4个顶点。 为此,您需要一个在文档中从未见过的函数,即cv2.cv.BoxPoints() (但不要担心,当OpenCV 2.4.3发布时,它将存在于文档中。)
您可以在本文中找到有关如何绘制旋转矩形的示例: 旋转矩形
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.