画像を読み込んで同じ画像を保存していますが、cvSaveImage() を使用して別の名前で保存しています。保存後、新しく保存された画像のサイズが大きくなります。誰かが理由とそれを回避する方法を教えてもらえますか?? ここに私のコードがあります:
intメイン(){
IplImage* src = cvLoadImage("test.jpg", 0);
cvSaveImage("reTest.jpg", src);
return 0;
}
ありがとう。
画像を読み込んで同じ画像を保存していますが、cvSaveImage() を使用して別の名前で保存しています。保存後、新しく保存された画像のサイズが大きくなります。誰かが理由とそれを回避する方法を教えてもらえますか?? ここに私のコードがあります:
intメイン(){
IplImage* src = cvLoadImage("test.jpg", 0);
cvSaveImage("reTest.jpg", src);
return 0;
}
ありがとう。
これは、OpenCV でデフォルトで使用される JPEG 圧縮率が低いためです。カスタム圧縮係数を渡す方法は次のとおりです- OpenCV cvSaveImage Jpeg Compression Factor。
JPEG には、さまざまな圧縮方法とコーディング方法が組み合わされています。ほとんどの場合、元の画像は、cvSaveImage の標準の openCV パラメーター化とは異なる圧縮/コーディングを使用していました。
これを試して:
IplImage* src = cvLoadImage("test.jpg", 0);
cvSaveImage("reTest.jpg", src);
IplImage* reSrc = cvLoadImage("reTest.jpg",0);
cvSaveImage("reTest2.jpg", reSrc);
reTest.jpg
とが同じサイズの場合reTest2.jpg
、openCV はファイルサイズを大きくしませんが、異なる圧縮レベルまたは sth を使用するだけです。元のファイルの圧縮レベルとコーディングを調べて、これらと同じパラメーターで、おそらく openCV とは異なるライブラリーで保存する必要があります。