android - 如何将 OpenCV 头文件包含到 C++ 项目中?

标签 android c++ opencv image-processing

我是 C++ 和 OpenCV 的菜鸟,所以如果我的问题很愚蠢,请原谅。基本上我正在尝试关注 this tutorial用于通过 native C++ 处理图像。但问题是我无法包含必要的头文件 #include <opencv2/core/core.hpp> .谁能帮我解决这个问题?

代码:

#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "enhance.h"
using namespace std;
using namespace cv;

JNIEXPORT void JNICALL
Java_org_fossasia_phimpme_editor_editimage_filter_PhotoProcessing_nativeApplyFilter(JNIEnv     *env, jclass type, jlong inpAddr,jlong outAddr) {
   Mat &src = *(Mat*)inpAddr;
   Mat &dst = *(Mat*)outAddr;
   applyFilter(src, dst);
 }

最佳答案

我不相信这是 C 或 OpenCV 的问题,你遇到的是链接问题

如果您尝试包含 #include <opencv2/core/core.hpp>它无法读取它,这意味着您的编译器无法在其搜索列表中找到 OpenCV2 文件夹,这是因为它不是 visual studio 的一部分,因此您需要下载 openCV 库,然后将其添加到您的项目中,然后将其链接到您的项目才能使用它!

您需要做的是转到项目属性 先选择ALL configuration 然后在配置属性下选择 C/C++ 然后你会看到additional include directories去添加目录到openCV2 即,如果您在名为 include 的项目中创建文件夹,请在其中添加 opencv2 然后在您的地址中使用 .\include\并记住始终以 \ 结束您的路径为避免链接问题,您可以包括 #include <opencv2/core/core.hpp>在你的项目中

如果您有特定的库,您可以将其添加到 Linker 中然后转到 additional library directories如果你有 .lib 文件,你可以在那里添加库

注意:确保设置正确的平台 所以不要对 X86 进行此设置,然后期望它适用于 X64 是的,如果您为 X64 项目进行了设置,这些设置将不适用于 X86 项目,因此您需要确保为正确的平台指定设置

关于如何设置项目的完整描述可以在他们的文档中找到 HERE

关于android - 如何将 OpenCV 头文件包含到 C++ 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53137748/

相关文章:

android - 从 Play 商店安装后无法检索推荐代码

c++ - 为什么在 Visual Studio 2008/2010 中_不需要 typename?

c++ - 如何使用 C++ 中的源代码扩展 .lib?

python - 图像中棘手的填充孔

c++ - 编译后在 OpenCV 中包含额外的库

opencv - 在 OpenCV 中绘制平面的法向量

android - AsyncTask 运行时黑屏

android - 使用 Android SDK 30+ Flutter 读/写外部存储

android - Phonegap 构建外部主机

c++ - 为什么当我直接提供矩阵时,这个 LAPACK 程序可以正常工作,但当我从文件中读取矩阵时却不能正常工作?