javacv1.0 IplImage怎么获得bufferedImage?
javacv新的版本,在函数库上与以往的版本差异太大.
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
ToIplImage toIplImage = new ToIplImage();
grabber.start();
CanvasFrame canvasFrame = new CanvasFrame("Camera");
Frame frame = grabber.grab();//这里捕获的对象是Frame,不再是IplImage
IplImage iplImage = toIplImage.convert(frame);//需要经过一次转换才能得到IplImage
但是转换后的iplImage,自身不带有getBufferedImage()函数,无法获得bufferedImage.
本打算通过别的办法来获取,比如:
BytePointer bytePointer = iplImage.imageData();
byte [] bytes = bytePointer.getStringBytes();
拿到字节数组, 再经过
Image image = Toolkit.getDefaultToolkit().createImage(bytes, 0, bytes.length);
ToolkitImage toolkitImage = (ToolkitImage) image;
BufferedImage bufferedImage = toolkitImage.getBufferedImage();
或者是
InputStream inputStream = new ByteArrayInputStream (bytes);
inputStream.read(bytes);
inputStream.close();
BufferedImage bufferedImage = ImageIO.read(inputStream);
来尝试,结果都没有成功,bufferedImage总是null的.
请问根据iplImage正确获得bufferedImage的方式是什么样的? 希望经验丰富者不吝赐教.