我想一个C++ DCT代码转换到Android系统。以下是我试图在Android上从C++转换为OpenCV的代码。不过,我得到这个错误:OpenCV的 - 在C++到Android转换DCT:java.lang.IndexOutOfBoundsException:无效指数0,大小为0抛出
Java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
我发现了“outplanes”为0是否可以设置ArrayList的大小还是我失去了一些东西?说实话,我不确定这个代码是否可行。请告诉我我应该做什么。非常感谢!
Mat secondImage = new Mat();
secondImage = image.clone();
List<Mat> planes = new ArrayList<Mat>();
Core.split(secondImage, planes);
List<Mat> outplanes = new ArrayList<Mat>(planes.size());
Mat trans = new Mat(CvType.CV_32FC1);
Log.d("Planes", Integer.toString(planes.size())); //3
Log.d("Outplanes", Integer.toString(outplanes.size()));
for (int k = 0; k < planes.size(); k++) {
planes.get(k).convertTo(planes.get(k),CvType.CV_32FC1);
Core.dct(planes.get(k), outplanes.get(k));
outplanes.get(k).convertTo(outplanes.get(k),CvType.CV_8UC1);
}
Core.merge(outplanes, trans);
谢谢。我会仔细看看的。 :) – yukilynn