React-Native OpenCV读取功能正常运行,但写入功能无效

时间:2018-07-12 23:24:49

标签: c++ opencv react-native

我正在开发一个使用本机开发的应用程序,它需要我使用opencv进行一些图像分析。问题是我需要在分析后使用imwrite函数保存图像,该函数不起作用。

我已经检出了这篇文章:What is an undefined reference/unresolved external symbol error and how do I fix it?-但它没有回答我的问题。我知道imread函数正在运行,它与imwrite函数位于同一标头中。上述帖子中描述的所有问题似乎都无法解决此问题。

每当我尝试使用imwrite编译代码时,都会出现此错误:

C:\Users\User\Desktop\App\android\app\src\main\cpp/native-lib.cpp:82:
error: undefined reference to 'cv::imwrite(cv::String const&,
cv::_InputArray const&, std::__ndk1::vector<int,
std::__ndk1::allocator<int> > const&)'

我正在使用最新版本的opencv(3.4.1),并已使用

#include <opencv2/opencv.hpp>

这是使用JNI的c ++部分,只是试图将图像保存为灰度。

extern "C"
{
void JNICALL Java_com_astapp_ImageConvert_OpencvNativeClass_invertImage(JNIEnv *env, jobject instance,
                                                                         jstring filePath, jstring invertedFilePath) {
    const char *filePathStr = env->GetStringUTFChars(filePath, 0);
    const char *invertedFilePathStr = env->GetStringUTFChars(invertedFilePath, 0);
    // get photo with path
    Mat image = imread( filePathStr , IMREAD_GRAYSCALE);
    imwrite(invertedFilePathStr,image);

获取绝对路径

 File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);

        //make path of photo with gallery path
        String imageName;
        int index = imagePath.lastIndexOf("/");
        imageName = imagePath.substring(index+1, imagePath.length()-4);
        String filePath = dir.getAbsolutePath() + "/" + imageName + ".jpg";
        //make path of inverted photo
        String invertedFilePath = dir.getAbsolutePath() + "/" + imageName + "_inverted.jpg";

0 个答案:

没有答案