1

グレースケール イメージのいくつかのピクセル値を変更し、matlab で imwrite を使用して保存しようとしました。保存には問題ありません。問題は、読み返すと、一部のピクセル値が変更されていることです。保存する前にピクセルに割り当てた値とまったく同じではありません。画像をハッシュしようとしているので、1単位の違いがハッシュ番号に影響します。

4

1 に答える 1

1

mmgp で述べたように、JPG は不可逆になる可能性があります。これは、ストレージ効率を優先して、イメージ内の情報の一部が失われることを意味します。

JPG の背後にある理論的根拠は、MP3 の背後にある理論的根拠に多少似ています。人間の目が区別するのに特に適していない色相などの変化は、単純化または完全に削除されるため、画像の情報量が減少します。JPG 内の情報は、似ているように見えますが、実際には非常に異なるイメージを表しています。これはおそらくあなたが経験していることです。

Matlab で、の出力を見てくださいhelp imwritejpgと呼ばれる書き込みにパラメーターを与えることができます'Quality'。これは 0 から 100 までの数値で、100 は (ほぼ) ロスレス圧縮を意味します。

JPEG 標準では (ほぼ) 可逆圧縮可能ですが、実際には (少なくとも私の分野では) あまり使用されていません。より一般的な可逆画像形式は、PNG、JPEG2000、および TIFF です。詳しくはこちらをご覧ください。

これらはすべて、Matlab のimwrite関数でも利用できます。

于 2013-01-28T13:09:58.360 に答える