1

Arjuncomar 在此链接的 OpenCV-Raw readme.md 中声明https://github.com/arjuncomar/opencv-raw/blob/master/README.md

“编译/安装

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

./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 声明“这个 repo 仅包含 OpenCV 3.0 (HEAD) 的包装器”。所以我试图找到一个 OpenCV 3.0 下载,但没有运气,而且我从未在 /usr/local/include 中看到过 core.hpp 文件,所以不太了解错误。我正在尝试将 OpenCV 的 C++ 接口 arjuncomar 在他的 haskell 绑定中编写的自动生成的 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 并且宁愿在我第一次尝试时做到完美,这样我可以更快地输出音量而不必担心出错......

....任何帮助表示赞赏...美好的一天=)给大家...

4

2 回答 2

2

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

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

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

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

make -j6 && sudo make install

以这种方式构建应该避免 OP 中列出的问题,因为标头是cmake从源树中提取的,并直接传递给标头解析器和包装器生成器。请将错误报告发送到opencv_raw 存储库opencv_contrib。我正在看两个回购,我总是很乐意接受拉取请求。

爱德华——我知道你正试图联系我。您可以通过 nrujac atgmail dotcom 或直接在 github 上通过在任何 repos 上打开问题与我联系。

于 2014-04-17T14:15:17.983 回答
0

我发现这里只是 buld Arjun Comars fork https://github.com/arjuncomar/opencv绑定将在 opencv_generated cpp 和 hpp 文件中自动生成

于 2013-11-21T02:40:32.760 回答