gpt4 book ai didi

c++ - 如何将原始 Haskell 绑定(bind)编译到 OpenCV 又名 GitHub 成员 arjuncomar 的 OpenCV-Raw 仓库

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:26 25 4
gpt4 key购买 nike

Arjuncomar 在 OpenCV-Raw readme.md 中指出,此链接 https://github.com/arjuncomar/opencv-raw/blob/master/README.md

《编译/安装》

目前编译这个包可能有点棘手,因为到目前为止我只有机会在我的机器上测试它。首先,您需要为您机器上的 OpenCV 版本生成 C 包装器——此存储库仅包含 OpenCV 3.0 (HEAD) 的包装器。您可以通过以下方式生成这些包装器(以及相应的 Haskell 绑定(bind)):

./setup.sh <path to opencv headers>

例如

./setup.sh /usr/local/include"

我在 Opencv-Raw 的根目录中运行了“./setup.sh/usr/local/include”,顺便说一句,我在 Ubuntu Saucy 64 位上安装了 OpenCV 2.4.7,但出现了这个错误

 Traceback (most recent call last):
File "cbits/genhsc.py", line 161, in <module>
cgen.gen(header_dir, headers, dstdir)
File "/home/w/Documents/opencv-raw-master/cbits/genc.py", line 367, in gen
self.readHeaders(header_dir, srcfiles)
File "/home/w/Documents/opencv-raw-master/cbits/genc.py", line 350, in readHeaders
decls = parser.parse(header_dir + hdr)
File "/home/w/Documents/opencv-raw-master/cbits/hdr_parser.py", line 732, in parse
f = open(hname, "rt")
IOError: [Errno 2] No such file or directory: '/usr/local/include/opencv2/core.hpp'

Arjuncomar 声明“此存储库仅包含 OpenCV 3.0 (HEAD) 的包装器。”所以我试图找到一个 OpenCV 3.0 下载但没有运气,我从来没有在/usr/local/include 中看到过 core.hpp 文件所以不太理解错误。我正在尝试将 arjuncomar 在他的 haskell 绑定(bind)中编写的用于 OpenCV 的 C++ 接口(interface)的自动生成的 C 包装器合并到我自己的用于不同语言的 OpenCV 包装器中(当然减去 haskell 部分),我觉得这可能是一个很好的第一步,但如果我可以为这段代码制作一个 make 文件 i/e

cpp文件

void cv_imshow(String* winname, Mat* mat) {
cv::imshow(*winname, *mat);
}

hpp文件

void cv_imshow(String* winname, Mat* mat);

并希望它成为 C++ OpenCV 代码的完美 C 包装器,请告诉我......如果可能的话,关于如何制作这样的 make 文件的链接在这里发布会很有帮助......我已经习惯了C 但是 C++/C++ MakeFiles 的新手,我宁愿在第一次尝试时就做到完美,这样我就可以更快地输出音量而不必担心出错...

....感谢任何帮助...美好的一天=) 对你们所有人...

最佳答案

我是图书馆的作者。应 OpenCV 人员的要求,该库已移动了几次。它目前位于我的 opencv_contrib repo 的 fork 中.按照自述文件中的说明构建和安装包装器。

该过程相当于设置一个 opencv 构建目录,让 cmake 通过告诉它 opencv 源代码树的位置以及它需要从 opencv_contrib 加载额外的模块来填充它。

cd <cmake build directory>
cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>

编译和安装库会将 C 包装器 header 安装到“/include/opencv2/c/”,将编译后的二进制文件安装到“/lib/libopenc_c.so”。如果系统中存在 cabalghc,它也会编译并安装 Haskell 绑定(bind)。对我来说,这很简单:

make -j6 && sudo make install

以这种方式构建应该避免 OP 中列出的问题,因为 header 由 cmake 从源代码树中提取并直接传递给 header 解析器和包装器生成器。请将错误报告发送至 opencv_raw repo或到 opencv_contrib .我正在关注这两个 repo 协议(protocol),我总是很乐意接受拉取请求。

爱德华——我知道你正试图与我取得联系。您可以通过 nrujac at gmail dot com 或直接在 github 上通过在任何 repos 上打开问题来联系我。

关于c++ - 如何将原始 Haskell 绑定(bind)编译到 OpenCV 又名 GitHub 成员 arjuncomar 的 OpenCV-Raw 仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990975/

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