Java Android上的OpenCV:从许多mats中获取字节[]数组的有效方法
我有一个MAT的列表,我需要将它们转换成字节[]数组。问题是这种产品的开销很高。arraycopy部分工作正常,所以不用担心。我的问题是,是否存在比这更好的方法:Java Android上的OpenCV:从许多mats中获取字节[]数组的有效方法,java,android,opencv,mat,Java,Android,Opencv,Mat,我有一个MAT的列表,我需要将它们转换成字节[]数组。问题是这种产品的开销很高。arraycopy部分工作正常,所以不用担心。我的问题是,是否存在比这更好的方法: // These array comes allocated an filled with data byte[] patches; // Big array to store all patches int offsets[]; // Array with positions to copy for(int i
// These array comes allocated an filled with data
byte[] patches; // Big array to store all patches
int offsets[]; // Array with positions to copy
for(int i = 0; i < matList.size(); i++)
{
// Create a little array of mat size and get the data
int size = matList.get(i).rows() * matList.get(i).cols();
byte[] patch = new byte[size];
matList.get(i).get(0, 0, patch);
// Copy this little array to the big array
System.arraycopy(patch, 0, patches, offsets[i], patch.length);
}
//这些数组分配了一个填充了数据的数组
字节[]补丁;//存储所有补丁的大阵列
整数偏移量[];//包含要复制的位置的数组
对于(int i=0;i
如果我没有弄错的话,在Java中,我不能将带有偏移量的大补丁数组的引用传递给mat.get(0,0,array)函数,以避免分配所有这些小补丁。如果所有的
mat
具有相同的宽度,那么可以尝试使用方法将它们连接到单个mat
对象。然后,您将能够使用单个get
获取原始字节。不幸的是,它们的大小不同。不管怎么说,小费不错。