Моя конечная цель — реализовать алгоритм обнаружения облаков с помощью C++. Однако я столкнулся с проблемой.
У меня проблема с извлечением информации из пикселей. Для предварительной обработки данных использовался 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 yourFile.tif
илиidentify -verbose yourFile.tif
от ImageMagick? - person Mark Setchell   schedule 28.12.2017edit
под своим сообщением и вставьте вывод. - person Mark Setchell   schedule 29.12.2017identify -verbose yourFile.tif
, но понятия не имею, как его анализировать. Выходной файл довольно большой, поэтому я не думаю, что это хорошая идея вставлять его сюда. Если бы вы могли сказать мне, какая информация актуальна, это было бы здорово. Спасибо. - person Mantas   schedule 24.01.2018double
наunsigned short
везде. - person Mark Setchell   schedule 25.01.2018double
, так и с помощьюunsigned short
, но проблема в том, что они на самом деле не имеют смысла. - person Mantas   schedule 25.01.2018