下面是将缓冲的Image转换为Mat类型的java代码。当我运行此函数时,我得到以下异常:线程中的异常" main" java.lang.UnsupportedOperationException:Mat数据类型不兼容:
public static Mat bufferedImageToMat(BufferedImage image) {
Mat mat = new Mat(image.getHeight(), image.getWidth(), CvType.CV_8UC1);
int[] data = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
mat.put(0, 0, data);
return mat;
}
我搜索了谷歌上的错误我也跟着类似的问题在堆栈溢出,但是,这没有帮助我。有人可以帮我从这里出去吗。我卡住了。
答案 0 :(得分:0)
我不完全确定这是否有所作为,但你可以尝试改变
int [] data =((DataBufferInt)image.getRaster()。getDataBuffer())。getData();到
byte [] data =((DataBufferByte)image.getRaster()。getDataBuffer())。getData();
我试图重新创建你的错误,但无济于事。当我将代码更改为使用int []而不是byte []时,我只出现错误。