Cách nén ảnh trong MATLAB
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.

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ượng | Kết quả điển hình |
|---|---|
| 90-100 | Tệp lớn, chất lượng hình ảnh cao |
| 70-85 | Nén cân bằng cho ảnh |
| 50-70 | Tệp nhỏ hơn với các hiện vật có thể có |
| Dưới 50 | Né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.
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 →


