使用OpenCv时,java中不支持Mat数据类型错误

时间:2016-10-05 08:47:52

标签: java opencv bufferedimage mat

下面是将缓冲的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;
}

我搜索了谷歌上的错误我也跟着类似的问题在堆栈溢出,但是,这没有帮助我。有人可以帮我从这里出去吗。我卡住了。

1 个答案:

答案 0 :(得分:0)

我不完全确定这是否有所作为,但你可以尝试改变

int [] data =((DataBufferInt)image.getRaster()。getDataBuffer())。getData();到

byte [] data =((DataBufferByte)image.getRaster()。getDataBuffer())。getData();

我试图重新创建你的错误,但无济于事。当我将代码更改为使用int []而不是byte []时,我只出现错误。