1

画像を読み込んで同じ画像を保存していますが、cvSaveImage() を使用して別の名前で保存しています。保存後、新しく保存された画像のサイズが大きくなります。誰かが理由とそれを回避する方法を教えてもらえますか?? ここに私のコードがあります:

intメイン(){

IplImage* src = cvLoadImage("test.jpg", 0);

cvSaveImage("reTest.jpg", src);

return 0;

}

ありがとう。

4

2 に答える 2

4

これは、OpenCV でデフォルトで使用される JPEG 圧縮率が低いためです。カスタム圧縮係数を渡す方法は次のとおりです- OpenCV cvSaveImage Jpeg Compression Factor

于 2013-11-15T10:22:50.117 に答える
4

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 とは異なるライブラリーで保存する必要があります。

于 2013-11-15T10:32:45.853 に答える