최종 목표는 C++로 클라우드 검색 알고리즘을 구현하는 것입니다. 그러나, 나는 문제에 직면했다.픽셀 정보 추출 (dl) LibTIFF 사용
픽셀에서 정보를 추출하는 데 문제가 있습니다. 데이터 사전 처리의 경우 SNAP이 사용되었으며 특정 픽셀 (경도, 위도, 밴드 값 등)에 대해 많은 정보를 볼 수있었습니다. 나는 TIFF 파일로 이미지를 내보낼 때
문제
가 발생합니다. 이를 처리하기 위해 LibTIFF 라이브러리를 사용했습니다. 그러나 주어진 픽셀에 대한 특정 정보를 추출하는 방법을 알지 못합니다. 현재, LibTIFF 문서에서 표준 코드를 사용하여 이미지의 모든 픽셀을 반복하고 그 값을 출력합니다. 불행히도, 내가 얻는 가치는 말이되지 않습니다.TIFF* tif = TIFFOpen(filename, "r");
if (tif) {
uint32 imagelength;
double * buf;
tsize_t scanline;
uint32 row;
uint32 i;
tsize_t y;
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
scanline = TIFFScanlineSize(tif);
buf = (double *) _TIFFmalloc(scanline);
for (row = 0; row < imagelength; row++) {
int n = TIFFReadScanline(tif, buf, row);
for (y = 0; y < scanline; y++) {
cout << "Row: " << row << " y: " << y << " " << (double) buf[y]
<< endl;
}
}
_TIFFfree(buf);
TIFFClose(tif);
}
그래서, 내 질문은 이상적으로 LibTIFF를 사용하여 주어진 픽셀에 대한 특정 정보를 추출 할 수있는 간단한 방법이있다? 그렇지 않다면 어떻게해야할까요? 질문이 매우 기초적이라면 죄송합니다. 단지 그것에 관한 정보를 찾을 수 없었습니다. 미리 감사드립니다.
편집 : 출력 identify -verbose file.tif
Format: TIFF (Tagged Image File Format)
Mime type: image/tiff
Class: DirectClass
Geometry: 1830x1830+0+0
Resolution: 1x1
Print size: 1830x1830
Units: Undefined
Colorspace: Gray
Type: Grayscale
Endianess: MSB
Depth: 16/8-bit
Channel depth:
Gray: 8-bit
Channel statistics:
Pixels: 3348900
Gray:
min: 0 (0)
max: 13107 (0.2)
mean: 1582.66 (0.0241498)
standard deviation: 1200.55 (0.0183193)
kurtosis: 2.79689
skewness: 1.81966
entropy: 0.63063
Colors: 34
Rendering intent: Undefined
Gamma: 0.454545
Matte color: grey74
Background color: white
Border color: srgb(223,223,223)
Transparent color: none
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 1830x1830+0+0
Dispose: Undefined
Iterations: 0
Compression: None
Orientation: TopLeft
Properties:
comment: band2
date:create: 2018-01-09T21:48:10+00:00
date:modify: 2018-01-09T21:48:14+00:00
signature: b3783beb7f7d2bdb32c3c64f8878a02c238a10f221f6a05f93991b26a58a4c78
tiff:alpha: unspecified
tiff:endian: msb
tiff:photometric: min-is-black
tiff:rows-per-strip: 1830
Artifacts:
verbose: true
Tainted: False
Filesize: 49.3701MiB
Number pixels: 3348900
Pixels per second: 3.88504MB
User time: 0.484u
Elapsed time: 0:01.861
tiffdump image.tif
의 출력이 왜 당신이 당신의 TIFF는 복식을 포함 생각입니까? 'tiffdump yourFile.tif'을 시도 했습니까, 아니면 ** ImageMagick **의'-verbose yourFile.tif'를 확인 했습니까? –픽셀의 일부 값 (예 : 밴드 값)이 두 배이기 때문에 TIFF에 double 값이 있다고 가정했습니다. 나는 그것이 틀림 없다고 꽤 확신한다. 아니오, 저는 tiffdump 또는 ImageMagick을 사용하지 않았습니다. 내가 제대로 이해한다면 픽셀의 내용을 찾는데 도움이 될 것입니다. 그리고 필요한 부분을 추출하십시오. – Mantas
하나만 실행하거나 두 가지 모두를 수행하고 처리 할 대상을 확인하십시오. 게시물 아래에있는 '편집'을 클릭하고 출력을 붙여 넣으십시오. –