Узнайте количество страниц многостраничного TIFF с помощью библиотеки CImg

Кто-нибудь из вас когда-нибудь пытался узнать количество страниц многостраничного файла TIFF с помощью библиотеки CImg?

Я пытаюсь рассчитать гистограммы для каждой отдельной страницы в файле.

Это мой код для загрузки файла TIFF и создания объекта изображения:

#define cimg_use_tiff
#include <CImg.h>
using namespace cimg_library;

void reader::read_tiff(char * filename){
  CImg<short> img(filename);
}

Я мог бы попытаться использовать

CImg<T>::load_tiff (const char *const filename, const unsigned int first_frame=0, const unsigned   int last_frame=~0U, const unsigned int step_frame=1)`

функцию и проверьте, является ли возвращаемое изображение нулевым / выдается исключение. Это не похоже на чистый путь к тому, что я хочу. Любые идеи приветствуются!


person fourcube    schedule 28.06.2012    source источник
comment
Ну решение вроде бы простое. Мне просто нужно использовать размеры изображения, чтобы вычислить смещение в пикселях для каждой страницы. image.size() равно widthheightpage_number.   -  person fourcube    schedule 28.06.2012
comment
Другое решение: можно просто прочитать TIFF в CImgList‹T› и перебрать его. Список содержит изображения для каждой отдельной страницы файла TIFF.   -  person fourcube    schedule 28.06.2012


Ответы (1)


Похоже, функция CImgList::load_tiff() станет вашим другом. Многостраничный tiff-файл может содержать несколько изображений разного размера, поэтому для получения результата лучше использовать CImgList, так как любое изображение списка может иметь разный размер (что не относится к каждому z-срезу файла). КИМГ).

person cjuliard    schedule 28.06.2012
comment
Спасибо за ваш ответ. Я уже ответил на вопрос в своем собственном комментарии, но мне приятно знать, что кто-то другой сделал бы это так же. - person fourcube; 29.06.2012