3

私は行列を画像として保存する必要がある問題に取り組んでおり、それを MATLAB の行列の真にロスのない例にする必要があります。

画像を png と tiff の両方を可逆形式で書き込もうとしました。

名前 サイズ バイト クラス属性

  差分 237x354 671184 ダブル              
  imPng 237x354 167796 uint16              
  imPngD 237x354 671184 ダブル              
  imTiff 237x354 83898 uint8               
  imTiffD 237x354 671184 ダブル              
  パッド入り 2042x2170 35449120 ダブル              
  testImage 237x354 671184 ダブル              

testImage は、無損失で保存したいマトリックスです。

次の行を使用して、マトリックスを tif および png として記述しました。

EDU>> imwrite(testImage,'imTiff.tif','tiff','compression','none');
EDU>> imwrite(testImage,'imTiff.png','PNG','bitdepth',16);

次に、画像をワークスペース (imTiff と inPng) にロードし直して、double に変換しました。

EDU>> imPngD = im2double(imPng);
EDU>> imTiffD = im2double(imTiff);

しかし、testImage から imPngD または imTiffD のいずれかを減算すると、残余値が残ります。

私の質問は次のとおり
です。私の処理に何か問題がありますか?
そうでない場合、これは tif と png が本当に完全にロスレスではないことを意味しますか?

役立つと思われる場合は、画像を提供できます。

これらの画像が役立つと思いました: testImage
testImage - オリジナル
imTiffD と testImage の
imTiffD と testImage の違い
違いimPngD と testImage の違い
imPngD と testImage の違い

注意: 画像 2 ~ 3 の灰色のピクセルの値はゼロです。つまり、testImage とリロードされた画像の差はゼロです。

4

1 に答える 1

1

PNG と TIFF はどちらも真にロスレスです (使用していない JPEG をパッケージ化するための TIFF オプションを無視します)。ただし、これらの入力は、PNG の場合はカラー値ごとに 1 ピクセルあたり 8 ビットまたは 16 ビット、TIFF の場合はカラー値ごとに 8 ビットです。

8 ビット値または 16 ビット値で実行できる精度を超えて見ている場合は、違いがわかります。

于 2012-10-08T15:15:28.397 に答える