java opencv mat 转 bufferImage
时间: 2023-11-27 08:22:44 浏览: 258
java opencv BufferedImage与Mat互相转换.rar_OpenCV_Java_
5星 · 资源好评率100%
您可以使用 OpenCV 的 `Java2DFrameConverter` 和 `BufferedImageToMat` 类来实现 `Mat` 转 `BufferedImage` 和 `BufferedImage` 转 `Mat` 的转换。
下面是将 `Mat` 转换为 `BufferedImage` 的示例代码:
```java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.Videoio;
import org.opencv.imgcodecs.Imgcodecs;
import java.awt.image.BufferedImage;
import javax.swing.*;
import org.bytedeco.javacv.Java2DFrameConverter;
public class MatToBufferedImageExample {
public static void main(String[] args) {
// 加载OpenCV本地库
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 加载图像到Mat对象
Mat mat = Imgcodecs.imread("path/to/image.jpg");
// 创建Java2DFrameConverter对象
Java2DFrameConverter converter = new Java2DFrameConverter();
// 转换Mat为BufferedImage对象
BufferedImage image = converter.convertToBufferedImage(mat);
// 显示图像
JFrame frame = new JFrame("Image");
frame.getContentPane().add(new JLabel(new ImageIcon(image)));
frame.pack();
frame.setVisible(true);
}
}
```
下面是将 `BufferedImage` 转换为 `Mat` 的示例代码:
```java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.Videoio;
import org.opencv.imgcodecs.Imgcodecs;
import java.awt.image.BufferedImage;
import javax.swing.*;
import org.bytedeco.javacv.BufferedImageToMat;
public class BufferedImageToMatExample {
public static void main(String[] args) {
// 加载OpenCV本地库
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 加载图像到BufferedImage对象
BufferedImage image = ImageIO.read(new File("path/to/image.jpg"));
// 创建BufferedImageToMat对象
BufferedImageToMat converter = new BufferedImageToMat();
// 转换BufferedImage为Mat对象
Mat mat = converter.convert(image);
// 显示图像
Imgcodecs.imwrite("path/to/output_image.jpg", mat);
}
}
```
这些示例代码需要使用到 OpenCV 和 JavaCV 的库,请确保您已经成功安装了这些库。
阅读全文