メソッドTIFFReadScanline(tif, buf, row)を使用して、libtiff に約 500x500 の 32 ビット ピクセルの 1 つのストリップで構成される tiff ファイルを読み取らせようとしています。これにより、tdata_t (??) 行が得られます。
このバッファをテキスト ファイルとして書き出す、またはピクセル値 (倍精度である必要があります) にアクセスするにはどうすればよいですか?
私のコードは次のようになります。
TIFF* tif = TIFFOpen(c_str2, "r");
uint32 imagelength;
tdata_t buf;
uint32 row;
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
buf = _TIFFmalloc(TIFFScanlineSize(tif));
for (row = 0; row < imagelength; row++){
TIFFReadScanline(tif, buf, row);
myfile << buf << endl;
}
最後の行で、バッファ全体をテキスト ファイルに書き出そうとしましたが、double 値はなく、16 進数値しかありません。tdata_t バッファを char バッファに置き換えると、ASCII シンボルが意味不明になります。tdata_t バッファーを double または char バッファーに変換する必要があると思いますが、どうすればよいでしょうか?
libtiff がこれを自動的に処理するので、バイト順であってはなりません。
どんな提案でも大歓迎です!ご協力ありがとうございました。良い週末をお過ごしください。