我有一个使用OpenCV的C ++项目,我需要在Android上使用。为了简化,我们说这是项目代码:
Test.h:
#include <iostream>
class Test
{
public:
Test();
~Test();
static std::string getTest(std::string filePath);
};
Test.cpp的:
#include "opencv2/imgcodecs.hpp"
#include "Test.h"
using namespace cv;
std::string Test::getSize(std::string filePath)
{
Mat image = imread(filePath, 1);
std::stringstream stringStream;
if(image.empty())
{
stringStream << "Error loading image at path: " << filePath;
std::string error = stringStream.str();
return error;
}
stringStream << "Image size: " << image.rows << " * " << image.cols;
std::string result = stringStream.str();
return result;
}
我编写了我的JNI绑定并设置了我的Android.mk并编译,但是imread方法不起作用:图像为空(image.empty()测试为真)。
这里有什么不对?我检查了文件是否存在,所以我猜它是:
答案 0 :(得分:0)
太糟糕了,只是因为我没有接受Android 7手机上的存储权限-_-