Python | OpenCV 影像儲存與格式轉換
📚 前言
在上一章我們學會了如何讀取與顯示圖片。
這一篇要進一步學習 影像儲存與格式轉換,這是影像處理的基本操作之一。
💾 儲存影像
OpenCV 提供 cv2.imwrite() 來儲存影像。官方文件
語法:
1 | cv2.imwrite(filename, img[, params]) |
- filename:檔案路徑與名稱(副檔名決定輸出格式)。
- img:要儲存的影像(NumPy 陣列)。
- params:非必填,壓縮品質或其他設定。
🔄 格式轉換
只要改副檔名,就能轉換格式:
1 | import cv2 |
常見格式:
- JPG:有壓縮,檔案小,但可能失真。
- PNG:無損壓縮,支援透明度。
- BMP:未壓縮,檔案大。

圖:將 PNG 轉換為 JPG、BMP 的效果
⚙️ 壓縮品質設定
不同格式支援不同的壓縮參數:
- JPG:可設定壓縮品質(0–100,數字越高品質越好,檔案越大)。
- PNG:可設定壓縮等級(0–9,數字越高壓縮率越高,速度越慢)。
範例:
1 | # 儲存高品質 JPG |
🛠️ 範例程式:影像儲存與格式轉換
1 | import cv2 |

圖:不同壓縮品質的 JPG 與 PNG 儲存結果
🖼️ 從 NumPy 陣列生成圖片
除了讀取現有圖片,也能直接用 NumPy 建立影像矩陣,再用 imwrite() 儲存:
1 | import cv2 |
👉 這樣就能快速生成一張 500×500 的黑底紅方塊圖片。

圖:使用 NumPy 建立黑底紅方塊並儲存
⚠️ 注意事項
- 副檔名決定格式:
imwrite()會依檔名副檔名決定輸出格式。 - 顏色通道:OpenCV 使用 BGR,不是 RGB。
- 壓縮參數:不同格式支援的參數不同,詳細可查 ImwriteFlags。
結語 🎯
這一篇我們學會了如何使用 cv2.imwrite() 儲存影像,並進行格式轉換與壓縮設定。
下一篇將進入 影片讀取與播放,學習如何處理動態影像。
