Cách nén ảnh trong MATLAB

Janet L. HarrisJanet L. Harris·Cập nhật: October 9, 2026·Đọc trong 5 phút

Nếu bạn muốn nén một hình ảnh trong MATLAB, phương pháp thực tế nhất là đọc hình ảnh, tùy chọn thay đổi kích thước, sau đó lưu nó với cài đặt nén như chất lượng JPEG. MATLAB hữu ích khi bạn cần mã có thể lặp lại, xử lý hàng loạt hoặc các thử nghiệm xử lý hình ảnh.

Cách nén ảnh trong MATLAB

Trả lời nhanh

Sử dụng imread để tải hình ảnh và imwrite để lưu một bản sao đã nén. Đối với đầu ra JPEG, tham số Quality của MATLAB sử dụng giá trị từ 0 đến 100. Giá trị thấp hơn tạo ra nén mạnh hơn và tệp nhỏ hơn, trong khi giá trị cao hơn giữ lại nhiều chi tiết hình ảnh hơn.

img = imread("input.jpg");
imwrite(img, "compressed.jpg", "jpg", "Quality", 70);

Nếu bạn chỉ cần một quy trình làm việc nhanh trên trình duyệt và không muốn viết mã, hãy sử dụng công cụ nén ảnh của Lynote thay thế.

Phương pháp 1: Nén JPEG với chất lượng imwrite

JPEG là định dạng dễ nhất để giảm kích thước tệp vì nó hỗ trợ nén mất dữ liệu.

img = imread("photo.jpg");
imwrite(img, "photo-compressed.jpg", "jpg", "Quality", 65);

Trước tiên, hãy thử giá trị chất lượng từ 60 đến 80. Sau đó kiểm tra đầu ra. Các giá trị rất thấp có thể tạo ra các hiện vật (artifacts) có thể nhìn thấy xung quanh văn bản, khuôn mặt, cạnh hoặc các vùng tương phản cao.

Phương pháp 2: Thay đổi kích thước trước khi lưu

Nếu kích thước hình ảnh lớn hơn nhiều so với yêu cầu, việc thay đổi kích thước có thể giảm kích thước tệp một cách sạch sẽ hơn là giảm chất lượng JPEG quá nhiều.

img = imread("photo.jpg");
smaller = imresize(img, 0.5);
imwrite(smaller, "photo-small.jpg", "jpg", "Quality", 75);

Điều này giúp hình ảnh vẫn dễ đọc trong khi giảm số lượng pixel mà MATLAB cần lưu trữ.

Phương pháp 3: Kiểm tra kích thước tệp sau khi nén

Đừng đoán xem hình ảnh đã đủ nhỏ chưa. Hãy kiểm tra kích thước tệp đầu ra.

info = dir("photo-compressed.jpg");
sizeKB = info.bytes / 1024;
fprintf("Compressed size: %.1f KB\n", sizeKB);

Nếu tệp vẫn quá lớn, hãy giảm giá trị chất lượng một chút hoặc thay đổi kích thước hình ảnh thêm một chút.

Phương pháp 4: Nén hàng loạt hình ảnh trong một thư mục

Đối với các tập dữ liệu hoặc thư mục bài tập, hãy lặp qua các hình ảnh và lưu các bản sao đã nén.

files = dir("*.jpg");

for k = 1:length(files)
    img = imread(files(k).name);
    outputName = "compressed_" + files(k).name;
    imwrite(img, outputName, "jpg", "Quality", 70);
}

Trước khi chạy một tác vụ hàng loạt trên các tệp quan trọng, hãy kiểm tra cài đặt trên một hình ảnh và giữ lại các bản gốc của bạn.

Giải thích cài đặt chất lượng JPEG

Giá trị Quality kiểm soát sự đánh đổi giữa kích thước tệp và độ trung thực hình ảnh:

Giá trị chất lượngKết quả điển hình
90-100Tệp lớn, chất lượng hình ảnh cao
70-85Nén cân bằng cho ảnh
50-70Tệp nhỏ hơn với các hiện vật có thể có
Dưới 50Nén mạnh, thường bị giảm chất lượng rõ rệt

Đối với tài liệu, ảnh chụp màn hình, sơ đồ và hình ảnh có văn bản nhỏ, tránh nén quá mạnh.

Mẹo nén ảnh trong MATLAB

  • Lưu một bản sao thay vì ghi đè lên bản gốc.
  • Sử dụng JPEG cho ảnh và PNG cho ảnh chụp màn hình hoặc đồ họa khi chất lượng quan trọng.
  • Thay đổi kích thước hình ảnh quá lớn trước khi giảm chất lượng quá nhiều.
  • So sánh đầu ra bằng mắt thường, đặc biệt là xung quanh văn bản và các cạnh.
  • Chỉ sử dụng vòng lặp sau khi đã thử nghiệm một hình ảnh.

Câu hỏi thường gặp

Làm cách nào để nén ảnh trong MATLAB?

Tải hình ảnh bằng imread, sau đó lưu nó bằng imwrite. Đối với JPEG, sử dụng tham số Quality để kiểm soát nén.

Chất lượng JPEG trong MATLAB có nghĩa là gì?

Đây là một cài đặt từ 0-100. Giá trị thấp hơn thường tạo ra các tệp nhỏ hơn với chất lượng hình ảnh thấp hơn. Giá trị cao hơn giữ lại nhiều chi tiết hơn nhưng tạo ra các tệp lớn hơn.

MATLAB có thể nén ảnh PNG không?

Có, nhưng nén PNG hoạt động khác với JPEG. Đối với ảnh, chuyển đổi sang JPEG thường giảm kích thước tệp nhiều hơn. Đối với ảnh chụp màn hình hoặc sơ đồ, PNG có thể giữ lại các cạnh sắc nét hơn.

Làm cách nào để nén nhiều ảnh cùng lúc?

Sử dụng dir để liệt kê các tệp, lặp qua chúng và lưu các bản sao đã nén bằng imwrite.

Kiểm tra cuối cùng

Nén ảnh tốt không chỉ là một con số nhỏ hơn. Tệp vẫn phải dễ đọc, có thể sử dụng và phù hợp với tác vụ tải lên hoặc phân tích.

Janet L. Harris

Viết bởi Janet L. Harris

Chuyên gia Viết AI

Janet đánh giá các công cụ phát hiện và nhân hóa AI, tập trung vào độ chính xác, giới hạn và cách sử dụng có trách nhiệm. Xem mọi bài viết →