【发布时间】:2014-07-16 01:14:06
【问题描述】:
我正在使用带有 android 的 opencv,因为我首先在带有 opencv 的 Visual Studio 上尝试了我的代码,它在它上面运行良好,但是在理解函数和它们在 android ndk 中的错误原因方面让我感到困惑,就像在示例中一样程序
resize(image,image,image2.size());
image.convertTo(image,CV_32FC4,1.0/255.0);
image2.convertTo(image2,CV_32FC4,1.0/255.0);
vector<Mat> channel;
split(image,channel);
Mat mask = image.clone(); // clone function work fine
//Mat mask = channel[3].clone(); // clone function show me error
// channel.resize(3); // show error
Mat it;
multiply(mask,channel[0],channel[0]);
multiply(mask,channel[1],channel[1]);
multiply(mask,channel[2],channel[2]);
merge(channel,it);
错误
当我使用Mat mask = channel[3].clone(); 时,它显示Method 'clone' could not be resolved 的错误,但是当我使用Mat mask = image.clone(); 时,它工作正常。这是为什么呢?
当我使用channel.resize(3); 时,它显示调整大小功能错误,错误是Invalid arguments 'Candidates are: void resize(?, cv::Mat)'。
当我继续使用乘法函数时,它显示Invalid arguments ' Candidates are: void multiply(const cv::_InputArray &, const cv::_InputArray &, const cv::_OutputArray&, double, int)' 的错误。
虽然这些所有功能都在使用 opencv 的 Visual Studio 中工作,并且在我使用时在不同场景中使用时它们也在 android 中工作
Mat alpha1 = ch[3];
Mat alpha = alpha1.clone();
它在 android 中没有向我显示错误,但是当我像 Mat alpha1 = ch[3].clone(); 一样使用它时,它在 android ndk 中显示错误,上面提到了错误,multiply 在我使用时也是如此
split(image,channel);
multiply(mask,channel[0],channel[0]);
multiply(mask,channel[1],channel[1]);
multiply(mask,channel[2],channel[2]);
merge(channel,i);
multiply 函数显示我上面提到的错误,但是当我像这样使用它时:
split(image,ch);
vector<Mat> ch0 = ch[0];
vector<Mat> ch1 = ch[1];
vector<Mat> ch2 = ch[2];
multiply(alpha, ch0, ch0);
multiply(alpha, ch1, ch1);
multiply(alpha, ch2, ch2);
它没有显示错误,但我不知道如何合并它们并使用它。希望我用例子来解决这个问题。
我正在使用带有 opencv android 版本 2.4.8 的 eclipse 在本地环境中工作。
【问题讨论】:
-
提供有关错误的更多信息。什么错误?
-
我用完整的解释更新了我的问题
-
我无法理解您的问题。最后你说这些功能在 Visual Studio 和 Android 中都可以工作,那么你的问题在哪里?是在使用 Visual Studio 和 C++ 还是 Eclipse 和 Android 时?此外,您提供的代码在我的机器上用 VS2010 编译得很好。你能提供你得到错误的确切代码吗?
-
我的理解是,他在使用 android ndk 而不是使用 Visual Studio 时遇到了这些功能问题
-
@AldurDisciple 一些#Rocket 的正确性,我说上面的函数在我使用opencv 的Visual Studio 中为我工作,因为我在那里测试了我的程序,但是当我在Eclipse 环境中使用Android 和ndk 时相同的程序显示错误
标签: opencv android-ndk java-native-interface computer-vision native