OpenCV 3 中的 Mat <> BufferedImage 转换
Mat <> BufferedImage conversion in OpenCV 3
显然,在 OpenCV 2.4 中使用 Java 绑定可以将 Mat
转换为 BufferedImage
:
val greyMat = new Mat()
opencv_imgproc.cvtColor(mat, greyMat, opencv_imgproc.CV_BGR2GRAY, 1)
ImageIO.write(greyMat.getBufferedImage, "jpg", new File("output_grey.jpg"))
我尝试更新一个使用此代码的项目(我检查过它有效)以使用 OpenCV 3.1,但似乎此方法已失效。
为什么此方法 getBufferedImage
从 API 中删除,我该如何恢复它?
现在似乎有一个单独的转换器class:Java2DFrameConverter
:
import org.bytedeco.javacv.Java2DFrameConverter
val greyMat = new Mat()
val conv = new Java2DFrameConverter
opencv_imgproc.cvtColor(mat, greyMat, opencv_imgproc.CV_BGR2GRAY, 1)
ImageIO.write(conv.getBufferedImage(greyMat), "jpg", new File("output_grey.jpg"))
显然,在 OpenCV 2.4 中使用 Java 绑定可以将 Mat
转换为 BufferedImage
:
val greyMat = new Mat()
opencv_imgproc.cvtColor(mat, greyMat, opencv_imgproc.CV_BGR2GRAY, 1)
ImageIO.write(greyMat.getBufferedImage, "jpg", new File("output_grey.jpg"))
我尝试更新一个使用此代码的项目(我检查过它有效)以使用 OpenCV 3.1,但似乎此方法已失效。
为什么此方法 getBufferedImage
从 API 中删除,我该如何恢复它?
现在似乎有一个单独的转换器class:Java2DFrameConverter
:
import org.bytedeco.javacv.Java2DFrameConverter
val greyMat = new Mat()
val conv = new Java2DFrameConverter
opencv_imgproc.cvtColor(mat, greyMat, opencv_imgproc.CV_BGR2GRAY, 1)
ImageIO.write(conv.getBufferedImage(greyMat), "jpg", new File("output_grey.jpg"))