gpt4 book ai didi

opencv - 访问 cvLoadImage() 函数的正确头文件

转载 作者:行者123 更新时间:2023-12-02 17:06:37 47 4
gpt4 key购买 nike

我正在尝试获取 this 中提供的算法在 Windows 上工作的存储库。在无数问题之后,我只剩下一个无法识别的函数 cvLoadImage ,它已被贬低。我被指示使用 c++ API,但问题是我还必须重写代码的其他部分,我可能最终会破坏它。

#include <opencv2/imgcodecs/imgcodecs_c.h>

在 Visual Studio 上返回以下错误:

“这个带有遗留 C API 声明的 header 已从 OpenCV 中删除。遗留内容可从 legacy/constants_c.h 文件中获得。”

我导入了名为 constants_c.h 的 opencv 文件夹中提供的所有文件,但没有一个文件包含函数定义。

最佳答案

事实上,那是旧的 OpenCV C API。您需要将旧的 C 函数移植到 c++ OpenCV API,例如:

  • cvNamedWindow -> cv::namedWindow
  • cvRectangle -> cv::rectangle
  • cvPoint -> cv::Point

  • 等等

    您使用的代码实际上是旧的 C API 和新的 c++ API 的混合体。
    只需通过该 repo 中的所有 C API 调用并将它们手动移植到 c++ API 即可。正如您在上面看到的,大多数情况下这是相当直观的。如有疑问,请搜索 OpenCV 文档。

    此外,您应该查看 YOLOv2用于行人检测。

    更新 :

    此存储库有多个分支,看起来像 Berak已经有 removed the C API calls .他的更改是 merged ,因此您应该提取最新的更改并重建:
    cd C4-Real-time-pedestrian-detection
    git pull
    cmake . -DCMAKE_CXX_FLAGS="-std=c++11"
    make -j8

    我已经在我的机器上测试了上述内容:

    Charlie Chaplin movie with Pedestrian Detection green bounding boxes

    关于我的设置,我首先遇到了这个错误:
    cvdef.h:656:4: error: "OpenCV 4.x+ requires enabled C++11 support"

    这就是为什么我通过了 -std=c++11 cmake 的编译器标志。
    这可能是因为我是带有 Xcode 7.0(现在大约 3 岁)的旧版 OSX(10.11.6)。当前机器有 8 个内核,因此 make -j8 .
    根据需要在您的机器上随意更改这两个选项。

    关于opencv - 访问 cvLoadImage() 函数的正确头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53537475/

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