問題点・前提
imread関数であるjpgファイルを読み込み、
imwrite関数でjpgファイルを書き出すと、
書き出し後のjpgのファイルサイズが読み込み元のjpgのファイルサイズより大きくなってしまいます。
具体的には以下の通りです。
読み込み元jpg:1,209KB
書き出し後jpg:1,608KB
異なるいくつかのjpgで試したのですが、
どれも同様の比率でファイルサイズが大きくなってしまいます。
また、読み込み元画像と書き出し後画像の
画素数、画像サイズ、チャンネル数を比較しても全く違いはありませんでした。
背景として、OpenCVを用いて加工対象画像にテキストを乗せて書き出しを行っていたのですが、
ファイルサイズが異常に大きくなってしまっていたため、
試しにimreadの読み込み後、加工処理を行わずimwriteを実行した次第です。
バージョン:
Python3.7.3
OpenCV4.1.0
該当のソースコード
Python
1import cv2 2 3im = cv2.imread('target.jpg') 4cv2.imwrite('after.jpg', im) 5
試したこと
下記を参考に、IMWRITE_JPEG_QUALITYなどjpg書き出し時の設定値をすべて試して書き出したのですが、やはりファイルサイズが大きくなってしまいます。
https://docs.opencv.org/3.4.3/d4/da8/group__imgcodecs.html
また、読み込み元jpgと書き出し後jpgをwinmergeやimagemagickを用いて比較したところ、
確かに大きな差分が確認できるのですが、その原因が何なのか不明な状態です。
上記原因と、ファイルサイズをあまり変えずに書き出す方法をご教授いただけると助かります。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー