を反転コードで保存するには:私は、画像を表示する場合方法は、ここでDCTイメージ
imshow(idct2(CDCT),[0 255])
i=idct2(CDCT),[0 255];
imwrite(i,'fa.tif');
は、それが正常に動作します。しかし、黒い線がほとんどない白い画像だけが保存されます(間違った画像)。私が間違っていることを教えてください。 :)
を反転コードで保存するには:私は、画像を表示する場合方法は、ここでDCTイメージ
imshow(idct2(CDCT),[0 255])
i=idct2(CDCT),[0 255];
imwrite(i,'fa.tif');
は、それが正常に動作します。しかし、黒い線がほとんどない白い画像だけが保存されます(間違った画像)。私が間違っていることを教えてください。 :)
imwrite
を使用してファイルに書き込んだ画像データがdouble
またはsingle
(これはあなたのものです)の場合、すべての値は0から1の間であると予想されます。値はほとんど1より大きいあなたのデータはすべて0から255の間であるので、イメージがほとんど白であるように見えます。 imwrite
に電話する前に、mat2gray
を使用して簡単にデータを正規化することができます。あなたはimwrite
にuint8
値を渡す場合
imwrite(mat2gray(i), 'fa.tif');
そうでない場合は、値が(データがあるとして)0〜255の範囲内であることが期待されています。だから、あなたは、単に
imwrite(uint8(i), 'fa.tif');
それはうまくいっていますが、いくつかのピクセルにわずかな違いがあります。それをどうすれば改善できますか? – user3102085
@ user3102085残念ながらあなたはできません。あなたの元のデータは 'double'(64ビット)で、結果のtifは8ビットなので、データをロードしてもデータは完全に等しくなることはありません。 -bit tiffでも、まったく同じではありません。同じである必要がある場合は、代わりに.matファイル内にデータを保存することを検討してください – Suever
を保存する前に
uint8
として入力データをキャストすることができ、私はまさにあなたのデータを知りませんが、あなたは 'save'、または' export'で、図から直接保存することができます。 – Adielしかし、画像は拡大縮小する必要があります... – user3102085
画像のdct内のCDCT – user3102085