Тип данных 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 [].