BufferedImageからOpenCVのMatへ変換

Java2DFrameUtilsで可能なので、以下の方法は不要
Java2DFrameUtils (JavaCV 1.5.7 API)


ただし、Java2DFrameUtilsに対応するには
javacv-〇.〇.〇.jar
が追加で必要になる。

・BufferedImage -> Mat
val byteArrayOutputStream = ByteArrayOutputStream()
ImageIO.write(bufferedImage, "png", byteArrayOutputStream)
mat = opencv_imgcodecs.imdecode(Mat(*byteArrayOutputStream.toByteArray()), opencv_imgcodecs.IMREAD_UNCHANGED)

 

・Mat -> BufferedImage
val byteArray = ByteArray(mat.arraySize().toInt())
opencv_imgcodecs.imencode(".png", mat, byteArray)
return ImageIO.read(ByteArrayInputStream(byteArray))

java - Converting `BufferedImage` to `Mat` in OpenCV - Stack Overflow