Открыть большое изображение
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Открыть большое изображение
Добрый день.
Требуется открыть изображение (~17000x17000 пикс.) в 32-битном формате. Не хватает памяти. (Нужно найти некоторые объекты, по которым разделить изображение на 16 частей и уже их подробно анализировать)
В 8-битном открывает, могу находить то, что нужно. Но делить на части нужно цветное.
Есть ли какие-то относительно простые методы решения? Спасибо.
Требуется открыть изображение (~17000x17000 пикс.) в 32-битном формате. Не хватает памяти. (Нужно найти некоторые объекты, по которым разделить изображение на 16 частей и уже их подробно анализировать)
В 8-битном открывает, могу находить то, что нужно. Но делить на части нужно цветное.
Есть ли какие-то относительно простые методы решения? Спасибо.
- Вложения
-
- 2403.rar
- (25.37 КБ) 167 скачиваний
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Открыть большое изображение
В 2018 64-bit открывается. Правда загрузка длится секунд 5. И объем сжираемой памяти увеличивается со 180 МБ до 2,33 ГБ. Это для формата RGB (U32). Ну, какие тут могут быть решения?.. Поставить оперативки побольше. Обновить Винду/LabVIEW на 64-битные версии. Постараться как-то уменьшить размер обрабатываемых данных (отмасштабировать картинку). Может быть, обрабатывать файл по частям, если такое возможно.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Открыть большое изображение
Extending Virtual Memory Usage for 32-bit Windows
http://zone.ni.com/reference/en-XX/help ... _ad_aware/
http://zone.ni.com/reference/en-XX/help ... _ad_aware/
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Открыть большое изображение
Спасибо за советы.
Делал так раньше для 7-ки, там задача не такая была, но помогло
Сейчас 10-ка, то ли на нее не работает, то ли мне все равно не хватает.
на пк оперативки много, винда 64, а lv 32 битная. Когда то вычитал, что на 64 битной многих тулкитов нет и вообще не очень она, не было database, например, а тогда нужен был. В общем исторические предубеждения :) Если не придумаю чего, то переходить будуLabVIEW на 64-битные версии
первым делом попробовал, но не помогло.Extending Virtual Memory Usage for 32-bit Windows
Делал так раньше для 7-ки, там задача не такая была, но помогло
Сейчас 10-ка, то ли на нее не работает, то ли мне все равно не хватает.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Открыть большое изображение
Первое, что я бы посоветовал, это пересохранить в несжатый BMP и попробовать открыть его.zxc_pavel писал(а):Требуется открыть изображение (~17000x17000 пикс.) в 32-битном формате. Не хватает памяти. (Нужно найти некоторые объекты, по которым разделить изображение на 16 частей и уже их подробно анализировать)
В 8-битном открывает, могу находить то, что нужно. Но делить на части нужно цветное.
Есть ли какие-то относительно простые методы решения? Спасибо.
Объем изображения должен составлять примерно 1Gb и его открытие не потребует сложных вычислений, по сравнению с декодированием JPEG.
Если это не получится, то попробуйте загрузить данные из файла с использованием стандартной функции Read JPEG File VI, преобразовать в массив. А так как в U8 вы сделали предварительный анализ и знаете области, которые подлежат дальнейшему анализу, то их можно выдернуть из массива.
Я только могу порекомендовать, делать все это последовательно:
1. Загрузка в U8 (IMAQ) -> Анализ и определение ROI -> Dispose VI (очистка памяти).
2. Загрузка в RGB (Read JPEG File VI) -> Преобразование в массив -> Выделение ROI -> Преобразование в изображение -> Сохранение в файл, по очереди для каждого ROI, что бы не плодить сущности.
3. Загрузка в RGB (IMAQ) -> Анализ, последовательно для каждого ROI.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Открыть большое изображение
А не прокатит такой вариант?
1. декодировать JPEG в несжатый формат, сохранить в бинарный файл;
2. читать и обрабатывать этот файл по частям;
3. удалить файл, когда станет не нужен.
Ну, займёт файл на диске 2-3 ГБ, но это будет не так накладно для системы, чем загрузка напрямую в память.
IvanLis опередил меня :)
1. декодировать JPEG в несжатый формат, сохранить в бинарный файл;
2. читать и обрабатывать этот файл по частям;
3. удалить файл, когда станет не нужен.
Ну, займёт файл на диске 2-3 ГБ, но это будет не так накладно для системы, чем загрузка напрямую в память.
IvanLis опередил меня :)
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Открыть большое изображение
До загрузки данных здесь дело не доходит. Ошибка возникает при попытке выделения непрерывной области памяти при инициализации буфера - массива размером ширина х высота х 3 байтов (U8).
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Открыть большое изображение
Все там нормально загружаетсяBlackman писал(а):До загрузки данных здесь дело не доходит. Ошибка возникает при попытке выделения непрерывной области памяти при инициализации буфера - массива размером ширина х высота х 3 байтов (U8).
Если брать U32 (4byte)
17000×17000×4=1156000000 byte
или 1102.45 M byte (1.1 Gbyte)
А если в градациях серого, то будет в 4 раза меньше.
Что и подтверждает:
----------------------zxc_pavel писал(а):В 8-битном открывает, могу находить то, что нужно. Но делить на части нужно цветное.
Мне несколько раз приходилось строить вероятностный профиль изображения для последующего детектирования объектов.
Один раз пришлось анализировать HD изображения, около 25 т. кадров, каждый в несжатом виде около 10 МByte.
Там нужно собрать со всех кадров значения яркостей для каждого пикселя (каждой цветовой составляющей RGB) и рассчитать для них мат. ожидание и дисперсию.
Пришлось сначала перегонять все изображения в бинарники, при этом реально нам нужны только 3 byte (24bit) а не 4, т.к. альфа-канал это избыточность, что уже позволяет экономить ресурсы.
Потом полученную стопку кадров протыкал иголочкой, по адресу byte в файле, дальше думаю понятно
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Открыть большое изображение
Согласен, что немного не корректно сравнивать:Blackman писал(а):Где там? Какая Ось?
На картинке результат на Win10х64 16Г 2017х32
OS Linux x64
ОЗУ 16Gb
LV2016 x64
Объем памяти затрачиваемой при чтении Read JPEG File VI - 867 Mb
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Открыть большое изображение
в LV15 x32 тоже ругаетсяRead JPEG File VI
Установил x64 - и imaq и read-file открывают изображение, наверное, придется там делать
Раньше не делал, поэтому не понял, как это делать и что должно получиться. Это же не просто открыть несжатую картинку как текстовый документ?сохранить в бинарный файл ... читать и обрабатывать этот файл по частям
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Открыть большое изображение
Зачем как текстовый? Read from Binary File. Размер файла известен, формат - обычный массив цветов U32. Делите размер на 16 (или сколько нужно) частей, читаете 1/16-ю, конвертируете в изображение, выполняете анализ. Дальше, следующую 1/16-ю по аналогии.zxc_pavel писал(а):Раньше не делал, поэтому не понял, как это делать и что должно получиться. Это же не просто открыть несжатую картинку как текстовый документ?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 253 Просмотры
-
Последнее сообщение AndreyDmitriev