如何在 MATLAB 中壓縮圖片
如果您想在 MATLAB 中壓縮圖片,最實用的方法是讀取圖片,可選擇調整大小,然後以 JPEG 品質等壓縮設定儲存。當您需要可重複的程式碼、批次處理或影像處理實驗時,MATLAB 會很有用。

快速解答
使用 imread 載入圖片,並使用 imwrite 儲存壓縮副本。對於 JPEG 輸出,MATLAB 的 Quality 參數使用 0 到 100 的值。較低的值會產生更強的壓縮和更小的檔案,而較高的值則保留更多視覺細節。
img = imread("input.jpg");
imwrite(img, "compressed.jpg", "jpg", "Quality", 70);
如果您只需要快速的瀏覽器工作流程,不想編寫程式碼,請改用 Lynote 的圖片壓縮工具。
方法 1:使用 imwrite 品質壓縮 JPEG
JPEG 是最容易縮小檔案大小的格式,因為它支援有損壓縮。
img = imread("photo.jpg");
imwrite(img, "photo-compressed.jpg", "jpg", "Quality", 65);
首先嘗試 60 到 80 之間的品質值。然後檢查輸出。非常低的值可能會在文字、人臉、邊緣或高對比區域周圍產生可見的偽影。
方法 2:儲存前調整大小
如果圖片尺寸遠大於所需,調整大小可以比過度降低 JPEG 品質更清晰地縮小檔案大小。
img = imread("photo.jpg");
smaller = imresize(img, 0.5);
imwrite(smaller, "photo-small.jpg", "jpg", "Quality", 75);
這可以在減少 MATLAB 需要儲存的像素數量的同時,保持圖片可讀。
方法 3:壓縮後檢查檔案大小
不要猜測圖片是否足夠小。檢查輸出檔案大小。
info = dir("photo-compressed.jpg");
sizeKB = info.bytes / 1024;
fprintf("Compressed size: %.1f KB\n", sizeKB);
如果檔案仍然太大,請稍微降低品質值或稍微調整圖片大小。
方法 4:批次壓縮資料夾中的圖片
對於資料集或作業資料夾,請循環處理圖片並儲存壓縮副本。
files = dir("*.jpg");
for k = 1:length(files)
img = imread(files(k).name);
outputName = "compressed_" + files(k).name;
imwrite(img, outputName, "jpg", "Quality", 70);
end
在對重要檔案執行批次作業之前,請先在一張圖片上測試設定並保留您的原始檔案。
JPEG 品質設定說明
Quality 值控制檔案大小和視覺保真度之間的權衡:
| 品質值 | 典型結果 |
|---|---|
| 90-100 | 檔案大,視覺品質高 |
| 70-85 | 適用於照片的平衡壓縮 |
| 50-70 | 檔案較小,可能出現偽影 |
| 低於 50 | 強力壓縮,通常視覺品質明顯下降 |
對於文件、螢幕截圖、圖表和帶有小文字的圖片,請避免過度壓縮。
MATLAB 壓縮技巧
- 儲存副本而不是覆蓋原始檔案。
- 當品質很重要時,照片使用 JPEG,螢幕截圖或圖形使用 PNG。
- 在過度降低品質之前,先調整過大圖片的大小。
- 視覺比較輸出,特別是文字和邊緣周圍。
- 僅在測試一張圖片後才使用循環。
常見問題
如何在 MATLAB 中壓縮圖片?
使用 imread 載入圖片,然後使用 imwrite 儲存。對於 JPEG,使用 Quality 參數控制壓縮。
MATLAB 中的 JPEG 品質是什麼意思?
這是一個 0-100 的設定。較低的值通常會產生較小的檔案,但視覺品質較低。較高的值會保留更多細節,但會產生較大的檔案。
MATLAB 可以壓縮 PNG 圖片嗎?
是的,但 PNG 壓縮的行為與 JPEG 不同。對於照片,轉換為 JPEG 通常能更有效地縮小檔案大小。對於螢幕截圖或圖表,PNG 可能會保留更銳利的邊緣。
如何一次壓縮多張圖片?
使用 dir 列出檔案,循環處理它們,並使用 imwrite 儲存壓縮副本。
最後檢查
良好的圖片壓縮不僅僅是數字變小。檔案仍應可讀、可用,並適合上傳或分析任務。


