gpt4 book ai didi

python: OpenCV 根目录

转载 作者:太空狗 更新时间:2023-10-30 01:23:16 27 4
gpt4 key购买 nike

我正在将 OpenCV 用于各种对象检测器,但我发现很难编写可移植代码。

例如,要在通过自制软件安装了 OpenCV 的 Mac 上加载人脸检测器,我必须这样写:

haar=cv.Load('/usr/local/Cellar/opencv/2.4.2/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')

这不是可移植的;如果我想换到另一台机器,我将不得不确定另一个绝对路径并更改此代码。

是否有一个变量保存 OpenCV 的 OpenCV 根?这样我就可以写这样的东西:

haar=cv.Load(os.path.join(OpenCVRoot, "haarcascades", 
"haarcascade_frontalface_default.xml"))

更新:看来这不仅仅是我的问题;这也是 OpenCV 文档的一个问题。该文档包含以下损坏的示例代码:

>>> import cv
>>> image = cv.LoadImageM("lena.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE)
>>> cascade = cv.Load("../../data/haarcascades/haarcascade_frontalface_alt.xml")
>>> print cv.HaarDetectObjects(image, cascade, cv.CreateMemStorage(0), 1.2, 2, 0, (20, 20))
[((217, 203, 169, 169), 24)]

如果有一种方法可以推断 lena.jpg 等示例和预训练分类器的安装位置,就可以很容易地避免这种情况。

来源:http://opencv.willowgarage.com/documentation/python/objdetect_cascade_classification.html (检索于 2013 年 3 月 5 日)

最佳答案

您可以使用 cv2.__file__ 获取模块的路径,然后使用 os.path 解析符号链接(symbolic link)并进行一些路径操作。这行代码返回我的 Mac OS 自制程序安装上的 haarcascades 文件的目录。它也可能适用于其他安装。

from os.path import realpath, normpath
normpath(realpath(cv2.__file__) + '../../../../../share/OpenCV/haarcascades')

关于python: OpenCV 根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com