mat opencv java_OpenCV Mat到JavaCV Mat转换

您可以使用java.awt.image.BufferedImage作为接口。

您org.opencv.core.Mat对象只是转换为java.awt.image.BufferedImage中再取结果对象将其转换为org.bytedeco.javacpp.opencv_core.Mat。

现在,这些都是你需要的功能:

1)转换org.opencv.core.Mat到java.awt.image.BufferedImage中:

public BufferedImage matToBufferedImage(Mat frame) {

int type = 0;

if (frame.channels() == 1) {

type = BufferedImage.TYPE_BYTE_GRAY;

} else if (frame.channels() == 3) {

type = BufferedImage.TYPE_3BYTE_BGR;

}

BufferedImage image = new BufferedImage(frame.width() ,frame.height(), type);

WritableRaster raster = image.getRaster();

DataBufferByte dataBuffer = (DataBufferByte) raster.getDataBuffer();

byte[] data = dataBuffer.getData();

frame.get(0, 0, data);

return image;

}

2)将Java。 awt.image.BufferedImage到org.bytedeco.javacpp.opencv_core.Mat:

public Mat bufferedImageToMat(BufferedImage bi) {

OpenCVFrameConverter.ToMat cv = new OpenCVFrameConverter.ToMat();

return cv.convertToMat(new Java2DFrameConverter().convert(bi));

}

确保拥有所有必要的罐子和进口。

你可以深入到JNI的东西,但对于测试用例,这应该是足够的。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部