我想将字节数组转换为Mat对象,但是它会抛出异常。
这是我的代码:
java.lang.UnsupportedOperationException: Provided data element number (60181) should be multiple of the Mat channels count (3)
at org.opencv.core.Mat.put(Mat.java:992)
这是我的代码:
byte[] bytes = FileUtils.readFileToByteArray(new File("aaa.jpg"));
Mat mat = new Mat(576, 720, CvType.CV_8UC3);
//Imgcodecs.imencode(".jpg", mat, new MatOfByte(bytes));
mat.put(0, 0, bytes);
我尝试了很多方法,也进行了大量的搜索,但并没有找到任何解决方案。
注意: 我知道Imgcodecs.imread("aaa.jpg");
和
BufferedImage img = ImageIO.read(new ByteArrayInputStream(byteArray));
Mat mat = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC3);
mat.put(0, 0, ((DataBufferByte) img.getRaster().getDataBuffer()).getData());
但我希望直接将字节数组转换为Mat,而不需要任何额外的处理来加快处理时间。
提前感谢!