Java 为Mat对象创建包装类时出错(获取多个通道计数时出错)
我正在Java中为Mat对象使用一个包装器类,在下面的Java 为Mat对象创建包装类时出错(获取多个通道计数时出错),java,opencv,serialization,mat,Java,Opencv,Serialization,Mat,我正在Java中为Mat对象使用一个包装器类,在下面的Mat.put(0,0,data)行中得到一个错误作为 捕获错误:java.lang.UnsupportedOperationException:提供的数据 元件编号(0)应为Mat通道计数(4)的倍数 下面是我使用的代码 import java.io.Serializable; public class MatWrapper implements Serializable { int rows; int cols;
Mat.put(0,0,data)行中得到一个错误代码>作为
捕获错误:java.lang.UnsupportedOperationException:提供的数据
元件编号(0)应为Mat通道计数(4)的倍数
下面是我使用的代码
import java.io.Serializable;
public class MatWrapper implements Serializable {
int rows;
int cols;
int type;
byte[] data;
public MatWrapper() {
}
public MatWrapper(Mat mat)
{
if (mat.isContinuous()) {
int elemSize = (int) mat.elemSize();
rows = mat.rows();
cols = mat.cols();
type = mat.type();
byte[] data = new byte[cols * rows * elemSize];
mat.get(0, 0, data);
}
}
public Mat toMat()
{
Mat mat = new Mat(rows, cols, type);
mat.put(0, 0, data);
return mat;
}
}
为了使用它,我打了以下电话:
// convert Mat object to a wrapper object
MatWrapper wrapper = new MatWrapper(mat);
// this wrapper object is serializable
Mat mat = wrapper.toMat();