画像をもう少し理解しようとしていますが、大変な苦労をしています。matlabの使用から、imread('test.tif')を使用し、各ピクセルの強度を整数として持つ、行と列の美しい行列を取得した経験があります。したがって、720 x 250の画像は、720 x 250のマトリックスになります。ここで、各セルには、0〜255のスケールでピクセルの強度が含まれます(データタイプによって異なります)。つまり、0は黒、255は白でした。
それはとてもシンプルでとても理にかなっています。今、私はlibtiffを使おうとしていますが、本当に苦労しています。同じことをしたいのですが、それらのピクセルにアクセスしますが、取得できません。
私は次のコードを持っています:
int main(int argc, char *argv[]){
TIFF* tif = TIFFOpen( argv[1], "r");
FILE *fp = fopen("test2.txt", "w+");
if (tif) {
int * buf;
tstrip_t strip;
uint32* bc;
uint32 stripsize;
TIFFGetField( tif, TIFFTAG_STRIPBYTECOUNTS, &bc);
stripsize = bc[0];
buf = _TIFFmalloc(stripsize);
for(strip = 0; strip < TIFFNumberOfStrips(tif); strip++ ) {
if( bc[strip] > stripsize) {
buf = _TIFFrealloc(buf, bc[strip]);
stripsize = bc[strip];
}
TIFFReadRawStrip(tif, strip, buf, bc[strip]);
}
int i;
for (i=0; i<stripsize; i++) {
if ( i % 960 ==0 )
fprintf(fp, "\n");
fprintf(fp,"%d ", buf[i]);
}
_TIFFfree(buf);
TIFFClose(tif);
}
exit(0);
}
しかし、私は完全に無意味な結果を得る-ただ完全に数字を打ち砕いた。matlabに画像を読み込んだときに表示される数値のようなものはありません。
どうすればピクセル値に簡単にアクセスしてそれらを見ることができますか?
本当にありがとう。