|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|||||||||||
OpenCV и большие изображения15.10.2023, 21:30. Показов 24420. Ответов 30
OpenCV и большие изображения
Здравствуйте. Столкнулся проблемой на opencv. Версия последняя на данный момент. 4.8.1. Пытаюсь создать и потом сохранить в tiff изображение разрешением 22000х22000 в разрядность. 48 бит. Ну то есть цветное 16 бит на канал.
Сохраняю так
Если работать с изображением размером 15000x15000, то всё нормально и оно создаётся. И сохраняется. Предполагаю, что эта ерунда происходит если размер файла будет превышать 2Гб. Но, это не есть хорошо. Как это побороть?
0
|
|||||||||||
| 15.10.2023, 21:30 | |
|
Ответы с готовыми решениями:
30
OpenCV: получить гистограммы каналов для области изображения Изменение параметров изображения в зависимости от положения ползунка (Opencv) |
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
||
| 17.10.2023, 02:00 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 17.10.2023, 02:36 [ТС] | |
|
Про ограничения там я ничего не нашёл. У самого формата лимит на размер файла в 4 Гб. тут наблюдаю лимит на 2 Гб. То есть используются знаковые 32-х разрядные значения. Уж тем более тут нет никаких ограничений ОС по этому вопросу. Где-то вместо DWORD использовали Integer. Скорее всего в этом дело. Но, где они там не учли и как это пофиксить - это уже слишком для меня.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
||
| 18.10.2023, 01:11 | ||
|
Добавлено через 33 секунды Или обертку новую делать, если в текущий формат залезть нельзя и поправить
0
|
||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 18.10.2023, 13:34 [ТС] | |
|
Не подходящее решение. У формата ограничение не 2 а 4 Гб. Косяк как в OpenCV, так и в Imageen. Ну, а TIFF выбран потому, что только его в виде 48 бит несжатым читает быстрый внешний JPEG2000 компрессор.
Добавлено через 1 минуту Было бы идеально как-то формировать 1) заголовок TIFF файла, 2)Построчную запись в него и 3) Формирование поля тэгов в конце. Последнее и есть самое сложное. Тогда Точно не было бы лимита в 2 гб.
0
|
|
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
|||
| 18.10.2023, 14:09 | |||
|
Проработайте каждый пункт и все будет ок. То есть вы можете создать заголовок записать данные но без тегов?? И все полученный файл могут читать как наддо?
0
|
|||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 18.10.2023, 22:46 [ТС] | |
|
Чтобы проработать третий пункт (где тэги), это нужно детально изучить формат TIFF и тем самым написать свою библиотеку построчной записи в этот формат. Долго и очень муторно. Записать золовок и сами данные это не сложно. Но без тэговых полей в конце файла изображение нечитаемо. Да, оно и понятно.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
||
| 19.10.2023, 02:00 | ||
|
0
|
||
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
|||
| 19.10.2023, 07:57 | |||
|
Вот есть либа. Покурить исходники подергать кусками в свой проект и на основе выродить то что вам надо. НУ а еще есть вот такая либа: Вроде как никаких проблем нету с созданием картинок размером 365,210 x 313,165 pixels Image data = 114.4Gp File size = 14GB
0
|
|||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 19.10.2023, 17:13 [ТС] | |
|
Да, занятная библиотека. Жаль. что написана на не на языке, на котором я обычно пишу. Да и лимит у TIFF в 4 Гб. Как там у них вышло 14 гб, загадка.
0
|
|
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
|||
| 19.10.2023, 18:11 | |||
|
Надо изучить формат тогда чтобы не было загадкой. Печаль .. Можно расходиться, а я думал интересная тема нарисовалась .. эх..
0
|
|||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 21.10.2023, 13:54 [ТС] | |
|
Да, наверное bitiff для этого и сделали, Я про него до этого не слышал даже. Но, вот не факт. что после генерации такого tiff его правильно воспримет программа компрессора. К сожалению на С++ пишу крайне мало. Есть ли уже готоdая DLL для работы с bigtiff с описание экспортируемых функций? Так что расходиться пока преждевременно.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|
| 22.10.2023, 20:36 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 22.10.2023, 21:03 [ТС] | |
|
Я хочу найти быстрое решение моей текущей задачи.
0
|
|
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
||
| 22.10.2023, 21:14 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
|
| 22.10.2023, 21:28 [ТС] | |
|
Откуда возникло 100 лет? Сохранение в tiff размером более 2 Гб вещь слишком уникальная?
0
|
|
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
||||
| 23.10.2023, 08:13 | ||||
|
Если бы вы внимательнее посмотрели ссылки то увидели что там есть статическая библиотека. При желании можно было бы сделать свою динамическую обертку. Но это надо конечно изучать а вам
0
|
||||
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
||||||
| 23.10.2023, 08:48 | ||||||
|
А вообще не пойму что у вас там за беда такая..
Взял CV 4.6.0. с оберткой OpenCVSharp. Написал код:
Сгенерил файлик. Все нормально работает. Винда видит картинку, фотошоп также загружает. Так что проблема скорее всего в неправильной работе и компиляции. Используйте 64 и не надо ничего выдумывать. И оперативы на компе должно быть достаточно чтобы провести все манипуляции. PS: А еще можно разные параметры IMWRITE_TIFF_COMPRESSION задавать чтобы получить нужное соотношение упаковки и качества. в соответсвии с мануалом.
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 52
|
||||||||||||||||
| 23.10.2023, 10:45 [ТС] | ||||||||||||||||
|
Разумеется,я всё делаю под Win64, а не под Win32. Для последней создать в памяти файл размером в 2 Гб будет невозможно.
Функция создания изображения
Добавлено через 6 минут И RAM на ПК 24 Гб. Вполне должно хватить для создания хотя бы 3 Гб изображения. Проверял и на ПК, где больше RAM. Например 40 Гб. Всё ровно тоже самое. Добавлено через 2 минуты Да, и изображение сохраняется в несжатом виде. Для kakadu нужно именно так. Добавлено через 39 минут И, да. При разрешении 32000х32000 у вас должно получиться более 4 Гб файл, а это уже выходит за пределы размера TIFF. Сохранять тогда по идее нужно в BigTIFF. Как он у вас читался в итоге - просто загадка.
0
|
||||||||||||||||
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
|
||
| 23.10.2023, 12:31 | ||
|
И код оформите корректно тегами а то глазам больно. И что за функция TIL_CV_Set_Pixel_48_Bit_Long_RGB?? Вы точно правильно используете данные?? у вас же 16 бит на канал. А что записываете?
0
|
||
| 23.10.2023, 12:31 | |
|
Помогаю со студенческими работами здесь
20
OpenCv. Получить зеркальное отображение изображения, используя функции: CvScalar, CvGet2D, CvSet2D Большие изображения на S3 OpenCV склеить изображения OpenCV открытие изображения Массив изображения opencv Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|