1 | ||||||
Визуализация и увеличение. DirectX и прочая графика26.11.2013, 18:55. Показов 2496. Ответов 25
Метки нет (Все метки)
Помогите реализовать самым быстрым методом!
Надо открыть файлик с числами (прилагается), визуализировать и увеличить в 2 раза. Проблема кроется как в визуализации, так и в увеличении картинки. Процедура открытия также прилагается. Помогите...
0
|
26.11.2013, 18:55 | |
Ответы с готовыми решениями:
25
Увеличение скорости загрузки из файла obj мешей в Directx Визуализация графика Визуализация графика С++ OpenGL Графика, для художника (визуализация) |
27.11.2013, 10:22 | 3 |
Не понятно.
визуализировать целые числа можно по разному. увеличить в 2 раза тоже...( хотя тут целые числа наверно без интерполяции ). Просто один пиксель превращается в 4? Зачем?
0
|
27.11.2013, 18:45 | 5 | ||||||||||
То есть нужна линейная интерполяция? А как быть с результатом если значение получится не целое - просто отсечь? Или округлить?
Для быстрой визуализации можно попробовать прикрутить шейдер:
Загрузка могла выглядеть приблизительно так:
0
|
28.11.2013, 11:13 | 7 | |||||
Дело в том что я не знаю как себя поведёт шейдер с целочисленными текстурами(ещё не было опыта их использования). И вы к тому же так и не ответили на мой вопрос:
В обычной(не целочисленной) текстуре достаточно настроить фильтрацию(вместо GL_NEAREST, поставить GL_LINEAR)
- нормализованная текстура, где целочисленные данные загружаются как флоат; - прямая выборка соседних текстелей(пикселей текструы) в шейдере, где можно реализовать почти любой вид интерполяции). Bitmap не нужен. Для реализации растягивания можно прикрутить FrameBuffer с нужным вам разрешением, отрисовать там квад с текстурой и считать данные в память, например в тот же TMemoryStream. А вообще зачем нужно такое растягивание?
0
|
28.11.2013, 18:02 [ТС] | 8 | ||||||||||||||||||||
Подождите секундочку... Извините, отлучился просто
Добавлено через 12 минут Примитив (для примера) выглядит так: Открыть палитру:
Далее Надо провести растяжение того BitMap до нужных мне размеров. А тот ваш вопрос не очень понятен. Я написал так, чисто символически визуализацию - pixels[] я не юзаю уже давно. Правда - чтение палитры... Я вcе целые округляю Round(). Задача вот в чём:
Оххххххх!!! Открыть() перед циклом. Да-да, визуализировать по-новой в каждом цикле. Потому что походу Значения Min и Max будут меняться!
0
|
28.11.2013, 20:21 | 9 |
Что-то мне лень считать. Какое максимальное разрешение получается?
Добавлено через 6 минут exp с двумя параметрами? Добавлено через 1 минуту Ещё не понятно что делать с отрицательными значениям? В вашем коде они игнорируются. Добавлено через 1 минуту при поиске максимального значения почему игнорится центральный пиксель?
0
|
28.11.2013, 23:21 [ТС] | 10 | |||||
О, Боже!!! Я хотел написать
Добавлено через 1 минуту Да, потому что он, Например, он значений так 15 000 000 А все остальные где-то 20 000-30 000. Вот и в максимум всё уйдет...
0
|
02.12.2013, 02:50 | 11 |
SeryZone, вообщем поэксперементировал я с вашим файлом... как я понял на прямую считывать как картинку файл Useful.kfb нельзя. Должно быть что-то ещё... так как явно идёт какой-то сдвиг пикселей( см 1 картинку )
Однако есть интересный эффект( см картинку 2 ). Если сжать по вертикали с 1080 до 120 пикселей то получается что шейдер берёт только каждый 9 пиксель - остальные пропускает и получается более-менее адекватная картинка. Вообщем думаю должны где-то лежать ещё правила как правильно считывать данные в картинку.
0
|
angstrom
|
|
02.12.2013, 03:17 | 13 |
На самом деле это обычный RAW файл и размерность его не 1920х1080, а 1080х1920. Прекрасно смотрится через IrfanView.
|
angstrom
|
|
02.12.2013, 03:20 | 14 |
Его вид.
|
02.12.2013, 17:54 [ТС] | 15 | |||||
Я не согласен с этим... И вообще, странно... Сейчас, разберусь. И кстати, вот реальная визуализация:
0
|
02.12.2013, 20:45 [ТС] | 17 |
Ох... Простите... Голова просто болит...
Вот тут всё как надо. Главное - сверхбыстро интерполировать. GDI+ не хочет просто так интерполировать (хотя такой быстрый и удобный) - он обязательно должен загружать изображение - а у меня BitMap. В общем, вот...
0
|
angstrom
|
|
02.12.2013, 22:25 | 18 |
Это неверный рисунок. Если посмотреть файл, то видно, что байты идут в обратном порядке. Отсюда и сине-фиолетовый цвет. Хотя, я может быть не прав, вдруг рисунок с прозрачностью. ТС скажи как верно. Я написал небольшой пример для быстрой конвертации, ответ только за ТС о правильной раскладке цвета.
|
02.12.2013, 22:35 | 20 |
SeryZone, а зачем вам увеличение? Почему нельзя увеличить готовую картинку обычным редактором?
0
|
02.12.2013, 22:35 | |
02.12.2013, 22:35 | |
Помогаю со студенческими работами здесь
20
Визуализация числового массива (создание графика) Qt графика на DirectX 11 ? C++ Графика (MS DirectX SDK) Увеличение размера графика в окне figure Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |