スポンサーリンク

JPG画像を圧縮する OpenCV + Python

スポンサーリンク
OpenCV
スポンサーリンク

スポンサーリンク

概要

ブログなどにアップする画像を比較的簡単に圧縮する方法がないか探していたところ、
PythonとOpenCVで簡単に実装出来そうでした。

そこで、Python + OpenCVで画像を圧縮する方法を紹介します。

環境

OpenCV 3.4.3
Python 3.7.1
Mac OS X

説明

実装では imencode と imdecode を組み合わせて、画像の圧縮を実現しています。
imencode と imdecode については以下のページで詳しく解説されています。

画像とビデオの読み込みと書き込み — opencv 2.2 documentation

ソース

Pythonで画像圧縮
Pythonで画像圧縮. GitHub Gist: instantly share code, notes, and snippets.

セットアップ

上記のソースコード compress_image.py を適当なディレクトリに配置します。

以下のようにコマンドを叩くことで、圧縮された画像を生成することができます。

python3 compress_image.py ./path/to/src.jpg -o ./path/to/dst.jpg -q 80

この場合、 ./path/to/src.jpgを読み込み、80%のクオリティで ./path/to/dst.jpgに出力します。

実験

元画像サイズを527KBとした時

クオリティサイズ
100516KB
80499KB
50360KB
30321KB
10194KB
189KB

といった具合になりました。
クオリティが30以下は正直使い物になるような品質ではありませんが、50くらいなら十分使えそうです。

OpenCVPyhton画像処理
スポンサーリンク
スポンサーリンク
スポンサーリンク
404 Motivation Not Found
タイトルとURLをコピーしました