Как открыть какой-либо регион из сжатого файла изображения, не загружая полный файл изображения в память? - PullRequest
0 голосов
/ 05 февраля 2012

У нас было изображение, загруженное в открытое резюме из какого-то сжатого файла JPG или PNG. Это было действительно большое. Мы имели некоторую рентабельность инвестиций, скажем, от (2000: 2000) до (2100: 2100) (квадрат 100x100). Мы закрыли изображение. Можем ли мы открыть этот ROI снова, не загружая полный файл изображения в память? Если да, что мы будем делать для этого? Какие метаданные сохранить?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

У нас возникла та же проблема, и в итоге мы использовали GDAL (http://www.gdal.org) для загрузки изображений, а затем преобразовали их в IplImage.

1 голос
/ 05 февраля 2012

Если вы работаете с растровым изображением или другим форматом, в котором биты хранятся в обычном шаблоне, то да, вы можете сделать это, самостоятельно расшифровав файл и считав только необходимые смещения.

Формат растрового файла

Извлечение части изображения PNG

Я не уверен, но я думаю, что с jpeg это невозможно, поскольку изображение хранится в виде информации в частотной области, что означает, что вам понадобятся все данные для получения какой-либо одной части изображения в исходной детали.

Или, как я предлагал в комментариях, вы можете просто сохранить ROI, если он у вас в памяти, если у вас ограниченное количество ROI, и вы знаете, какие из них вам понадобятся позже (или даже если вы не знаете, какие если их не так много).

Что из этого звучит как хороший подход для вас? Некоторое время назад я читал bmp, но у меня нет кода под рукой. Я мог бы выкопать код opencv, если вам это нужно для сохранения ROI. Это довольно легко, хотя.

...