我将 BufferedImage 存储在 MySQL 数据库中,并将它们检索到 java 应用程序。
BufferedImages 的类型为 TYPE_INT_RGB。
如何将该图像转换为 OpenCV Mat 对象?
我总是得到一个
java.lang.UnsupportedOperationException: Mat data type is not compatible:
异常。
有人可以帮忙吗?
最佳答案
我自己得到的。
int[] data = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
ByteBuffer byteBuffer = ByteBuffer.allocate(data.length * 4);
IntBuffer intBuffer = byteBuffer.asIntBuffer();
intBuffer.put(data);
Mat mat = new Mat(image.getHeight(), image.getWidth(), CvType.CV_8UC3);
mat.put(0, 0, byteBuffer.array());
return mat;
image 是 BufferedImage,您想要转换为 Mat-Object。
关于java - 将 BufferedImage TYPE_INT_RGB 转换为 OpenCV Mat 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21175336/