【发布时间】:2012-01-28 00:21:03
【问题描述】:
我目前正在尝试将一些遗留代码从 iPhone 迁移到 Android。此代码使用 OpenCV 库进行一些图像处理。总体来说很顺利,但是我卡在一行代码我不知道如何转换成Java代码:
Scalar dMean;
Scalar scalar;
std::vector<Mat> channels;
split(mat, channels);
for(int i=0; i<3; ++i) {
channels[i] += dMean[i];
}
问题是 - 应该使用什么来代替 Java 代码中的 += 运算符来将标量对象添加到 Mat 中?
【问题讨论】:
-
你能告诉我们你有什么,你到底在哪里(在 Java 中)卡住了?
-
+= 是基元可接受的运算符,但不适用于对象。您可能必须编写一个方法来为对象添加。
-
C++ 代码将标量添加到 Mat 对象。在 Java 中,我创建了 Scalar 和 Mat 对象,但找不到将 Scalar 添加到 Mat 的方法。 JavaCV中的Core类包含一个静态方法add(Mat, Mat, Mat),但是它只允许你添加两个Mat的
-
@Binyamin Sharet 我已经指出了我遇到问题的确切行 - 包含 += 运算符的行
-
您可以用c++编写该方法,并使用同一作者的javacpp库从您的代码中调用它。应该快得多。我很确定java中还没有相应的操作。