Code ứng dụng xử lý ảnh trong java

Bài viết này mình sẽ cùng bạn tìm hiểu một chút về Xử lý ảnh trong Java. Hi vọng nó giúp ích cho bạn nếu bạn đang tìm hiểu về phần này.

Xử lý ảnh là một phân ngành khoa học rất phát triển trong những năm gần đây. Xử lý ảnh gồm 4 lĩnh vực chính:

  • Nâng cao chất lượng ảnh
  • Nhận dạng ảnh
  • Nén ảnh
  • Và Truy vấn ảnh.

Sự phát triển của xử lý ảnh đã đem lại rất nhiều lợi ích cho cuộc sống của con người.

Ngày nay xử lý ảnh được áp dụng rất rộng rãi trong đời sống như: Photoshop, các phần mềm nhận dạng biển số xe, nhận diện khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế,....

Các thuật toán về xử lý ảnh thường rất phức tạp, kể cả việc tưởng chừng đơn giản như nén ảnh để giảm dung lượng lưu trữ mà vẫn giữ được chất lượng ảnh tốt cũng là vấn đề hóc búa.

Có rất nhiều bạn đang không rõ về lĩnh vực này nên trong bài viết mình sẽ giới thiệu sơ lược về xử lý ảnh với Java [có sử dụng thư viện OpenCV].

Hướng dẫn xử lý ảnh trong Java với thư viện OpenCV

Hy vọng qua bài này phần nào giúp các bạn có cái nhìn tổng quan về lĩnh vực Xử lý ảnh và có thêm hiểu biết về ngôn ngữ Java.> Tham khảo: Khóa học Java Full stack nếu bạn là người mới bắt đầu.

Hướng dẫn xử lý ảnh trong Java qua ví dụ đơn giản

Việc xử lý một bức ảnh bất kỳ mà nói thì có vô vàn phương thức và cách xử lý.

Nó là tổ hợp kiến thức của cả một phân ngành, cả một môn học thậm chí là một lĩnh vực dành cho những ai đi chuyên sâu.

Trong các IDE, Java cũng đã cung cấp nhiều phương thức để hỗ trợ cho việc xử lý ảnh được thuận tiện hơn và bớt lệ thuộc vào thư viện bên ngoài.

Nhưng ở mức độ cơ bản, chúng ta có thể xem qua một số ví dụ để thấy được cái hay của lĩnh vực này.

Ví dụ #1: Chuyển một bức ảnh có gam màu chuẩn sang một màu khác.

Để thực hiện việc chuyển màu này, bạn cần chuẩn bị một hình ảnh để code mình viết ra có cái mà chuyển, ở đây mình hình của mình lưu ở F:\\content-niit\\image-to-process.jpg.

Bạn thử chạy chương trình bên dưới và kiểm tra lại xem kết quả sau khi xử lý ảnh nó như thế nào?

Phần giải thích code mình đã chú thích theo dạng code comment rồi nhé.


 

import java.io.File;

import java.io.IOException;

import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

public class GrayConvert {

public static void main[String args[]] throws IOException {

BufferedImage img = null;

File f = null;

// đọc hình ảnh từ máy tính

try {

f = new File["F:\\content-niit\\image-to-process.jpg"];

img = ImageIO.read[f];

catch [IOException e] {

System.out.println[e];

}

// lấy chiều cao và chiều rộng của ảnh

int width = img.getWidth[];

int height = img.getHeight[];

// chuyển đổi sang màu xám

for [int y = 0; y  24] & 0xff;

int r = [p >> 16] & 0xff;

int g = [p >> 8] & 0xff;

int b = p & 0xff;

// tính giá trị trung bình

int avg = [r + g + b] / 3;

// thay RGB bằng giá trị avg vừa tính được

p = [a 

Chủ Đề