Тип данных Mat не поддерживается ошибка в Java при использовании OpenCv

Ниже приведен код Java для преобразования буферизованного изображения в тип Mat. Когда я запускаю эту функцию, я получаю следующее исключение: Исключение в потоке "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;
}

Я искал ошибку в Google, и я следовал за подобным вопросом в переполнении стека, однако, это не помогает мне. Может кто-нибудь помочь мне здесь. Я застрял.

1 ответ

Я не совсем уверен, если это будет иметь значение, но вы могли бы попытаться изменить

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

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

Я пытался воссоздать вашу ошибку, но безрезультатно. Я получил только ошибку, когда я изменил свой код, чтобы использовать int [] вместо byte [].

Другие вопросы по тегам