将本机C 代码转换为Java
Converting Native C++ code to Java
我正在将本机C 函数转换为Java,但在某个时候被卡住了。
这是给我引起问题的本地代码。
for(int x=0; x < inputMat.cols; x++)
{
for(int y=0; y < inputMat.rows; y++)
{
for(int c=0; c < 4; c++)
{
grayMat.at<cv::Vec4b>(y,x)[c] = (grayMat.at<cv::Vec4b>(y,x)[c] == 255 ? 255 : std::min(255,grayMat.at<cv::Vec4b>(y,x)[c]*255/(255-grayMat.at<cv::Vec4b>(y,x)[c])));
}
}
}
这是我在Java中的上述代码的转换版本
for(int x = 0; x < inputMat.cols(); x++){
for(int y = 0; y < inputMat.rows(); y++){
double data[] = new double[4];
for(int c = 0; c < 4; c++){
data[c] = grayMat.get(y,x)[c] == 255 ? 255 Math.min(255,grayMat.get(y,x)[c]*255/(255-grayMat.get(y,x)[c]));
grayMat.put(y,x,data[c]);
}
}
}
我收到以下错误:
过程:covariance.com.imagefilter,pid:11660 java.lang.unsupportedoperationException:提供的数据元素编号(1(应为MAT通道计数的多个(4( 在org.opencv.core.mat.put(mat.java:954( 在covariance.com.imagefilter.mainactivity.cartoonmatconversion(MainActivity.java:358( 在covariance.com.imagefilter.mainactivity.Access $ 100(MainActivity.java:47( 在covariance.com.imagefilter.mainactivity $ 1.ONCLICK(mainActivity.java:91( at android.view.view.performClick(view.java:6291( at android.view.view $ persilClick.run(view.java:24931( 在Android.os.handler.handlecallback(Handler.java:808( 在Android.os.handler.dispatchMessage(Handler.java:101( at android.os.looper.loop(looper.java:166( at android.app.activitythread.main(activityThread.java:7425( 在java.lang.reflect.method.invoke(本机方法(上 在com.android.internal.os.os.zygote $ methodAndargScaller.run(zygote.java:245( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:921(
注意GrayMat包含4种颜色Bgra
问题在您的呼叫中:
grayMat.put(y,x,data[c]);
一件事就在最内向的循环内;对于另一个,当需要4时,您只设置一个值(如错误所说(。
将其移到循环外,然后传递整个数组:
for(int c = 0; c < 4; c++){
data[c] = ...
}
grayMat.put(y,x,data);
- SWIG Java 在使用 -DSWIGWORDSIZE64 时将int64_t转换为 jlong
- 我需要帮助将我的代码从 c++ 转换为 java
- 将C++映射转换为 Java 映射
- 使用 jni 将返回带有模板的对象的 Java 代码转换为 c++
- C++ (U256)*(H256 const*)(char*[] + int) 将重写转换为 Java
- JNA 将 HICON 转换为 Java Image
- 从c++到java的矢量转换
- 如何将通过TCP发送数据的数据从C++转换为Java
- 如何将 Java double[][] 转换为 C++ <vector<vector>> JNI?
- MySQL 连接器错误,将代码从 Java 转换为 C++
- 将Java转换为C++:模板与泛型
- Java C/C++ 转换中的指针
- 将Java转换为Symbian C/C++ - 字节和对象数组
- 从 C++、C#、Perl 或 Java 转换为 PHP
- 用java转换MFC桌面应用程序GUI
- 将字符串从Java转换为C++
- Android 中的 OpenCV Rotate(纠偏) - C++ to Java 转换
- Java到C/ c++,或者至少得到Java转换后的代码
- 将我的c++代码转换为Java:转换多重继承
- C++ 关于外部"C"的 Java 转换问题