mat opencv java_OpenCV Mat到JavaCV Mat转换
您可以使用java.awt.image.BufferedImage作為接口。
您org.opencv.core.Mat對象只是轉(zhuǎn)換為java.awt.image.BufferedImage中再取結(jié)果對象將其轉(zhuǎn)換為org.bytedeco.javacpp.opencv_core.Mat。
現(xiàn)在,這些都是你需要的功能:
1)轉(zhuǎn)換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的東西,但對于測試用例,這應該是足夠的。
總結(jié)
以上是生活随笔為你收集整理的mat opencv java_OpenCV Mat到JavaCV Mat转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粉蓝世界的洗发乳是三合一的吗?香味好不呢
- 下一篇: java.lang包含_原因:java.