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

时间:2018-11-04 04:28:53

标签: android c++ opencv image-processing

我是C ++和OpenCV的新秀,所以如果我的问题很愚蠢,请原谅。基本上,我试图遵循this tutorial通过本机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);
 }

1 个答案:

答案 0 :(得分:1)

我不认为这是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