Lớp Imgcodecs thuộc gói org.opencv.imgcodecs trong thư viện OpenCV cung cấp các phương thức để đọc và ghi hình ảnh. Sau đây chúng ta sẽ sử dụng lớp Imgcodecs để hiển thị hình ảnh sử dụng OpenCV trong Java.
Hiển thị hình ảnh sử dụng OpenCV trong Java bạn có thể thực hiện theo các bước sau để đọc hình ảnh trong Java bằng cách sử dụng thư viện OpenCV:
Bước 1: Tải thư viện OpenCV vào dự án
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Hoặc bạn có thể nạp thư viện OpenCV bằng đường dẫn chẳng hạn
System.load("C:\\OpenCV\\build\\java\\x64\\opencv_java341.dll");
Bước 2: Sử dụng lớp Imgcodecs để đọc hình ảnh từ đường dẫn sẽ trả về cho bạn đối tượng Mat
Mat mat = Imgcodecs.imread("X:\\pathimg.jpg");
Sau đó bạn cần chuyển từ đối tượng Mat sang BufferedImage
private static BufferedImage matToBufferedImage(Mat matrix) { try { MatOfByte mob = new MatOfByte(); Imgcodecs.imencode(".jpg", matrix, mob); byte ba[] = mob.toArray(); BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(ba)); return bufferedImage; } catch (IOException ex) { ex.printStackTrace(); } return null; }
Bước 3: Cuối cùng hiển thị hình ảnh lên màn hình, toàn bộ mã nguồn giúp hiển thị hình ảnh sử dụng OpenCV trong Java như sau
package com.teamvietdev.viewimage; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfByte; import org.opencv.imgcodecs.Imgcodecs; /** * * @author TVD */ public class JavaViewImage { private static BufferedImage matToBufferedImage(Mat matrix) { try { MatOfByte mob = new MatOfByte(); Imgcodecs.imencode(".jpg", matrix, mob); byte ba[] = mob.toArray(); BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(ba)); return bufferedImage; } catch (IOException ex) { ex.printStackTrace(); } return null; } public static void main(String[] args) throws Exception { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // System.load("C:\\OpenCV\\build\\java\\x64\\opencv_java341.dll"); Mat mat = Imgcodecs.imread("X:\\tayduky.jpg"); JFrame frame = new JFrame(); frame.getContentPane().add(new JLabel(new ImageIcon(matToBufferedImage(mat)))); frame.pack(); frame.setTitle("Examples JavaCV"); frame.setResizable(false); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
Kết quả sau khi chạy đoạn mã chương trình trên:
Xem thêm:
OpenCV là gì, ứng dụng OpenCV trong thế giới thực
Cài đặt OpenCV trên môi trường Windows
Khởi chạy ứng dụng OpenCV đầu tiên
Lời kết: Bạn vừa theo dõi phần hướng dẫn hiển thị hình ảnh sử dụng OpenCV, ở các bài viết kế tiếp chúng ta sẽ tìm hiểu thêm như cách hiển thị video sử dụng OpenCV, nhận dạng khuôn mặt sử dụng OpenCV… được chia sẻ miễn phí tại Team Việt Dev trong chuyên mục OpenCV.
(Tác giả: Team Việt Dev)