処理を実行するためにTIFF画像を読み取ろうとしています。理想的なのは、OpenCV構造でこのイメージをインポートできることですが、それを別の方法でアクセスできるようにすることも素晴らしいことです。TIFF画像にアクセス
私は
TIFF Directory at offset 0x2bb00 (178944)
Subfile Type: (0 = 0x0)
Image Width: 208 Image Length: 213
Resolution: 1, 1
Bits/Sample: 32
Sample Format: IEEE floating point
Compression Scheme: None
Photometric Interpretation: min-is-black
Orientation: row 0 top, col 0 lhs
Samples/Pixel: 1
Rows/Strip: 1
Planar Configuration: single image plane
を取得した画像上tiffinfo実行した場合、私は1つの画素値にアクセスしたいです。画像はグレースケールで、そこに含まれるデータの範囲は0.0〜10372.471680です。
LibTIFF、Magick ++で試してみましたが、1つのピクセル値にアクセスできませんでした(ピクセルにループを作り、これらの値を画面に印刷しようとしました)。ここで
は私がオンラインの例からそれを得た、私が使用しようとしていますコードの一部です:
#include "tiffio.h"
#include "stdio.h"
int main()
{
TIFF* tif = TIFFOpen("test.tif", "r");
if (tif) {
uint32 imagelength;
tsize_t scanline;
tdata_t buf;
uint32 row;
uint32 col;
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
scanline = TIFFScanlineSize(tif);
buf = _TIFFmalloc(scanline);
for (row = 0; row < imagelength; row++)
{
int n = TIFFReadScanline(tif, buf, row, 0);
if(n==-1){
printf("Error");
return 0;
}
for (col = 0; col < scanline; col++)
printf("%f\n", buf[col]);
printf("\n");
}
printf("ScanLineSize: %d\n",scanline);
_TIFFfree(buf);
TIFFClose(tif);
}
}
私は
のgcc test.cの-ltiff -oテストでそれをコンパイル
私はそれを実行したとき、私は
test.c: In function ‘main’:
test.c:24: warning: dereferencing ‘void *’ pointer
test.c:24: error: invalid use of void expression
0123を取得
ヒント?御時間ありがとうございます。
はたぶん、あなたはあなたのソースコードを投稿する必要があり、さもなければ私たちはあなたにそれについてのヒントを与えることができないのですか? ;) – Constantinius
私はオンラインで見つけたいくつかのコードを追加しました。 tsize_tはvoidへのポインタです。私はこのコードを動作させようとしましたが、できませんでした。 – Danilo
私はTiffチュートリアルを見ましたが、あなたのコードでエラーが見つかりません。コンパイラがエラーを記述する行24は何ですか? – Constantinius