whale 6 5 августа, 2017 Опубликовано 5 августа, 2017 · Жалоба Всем привет! Есть вопрос, имеется массив данных, каждое данное размером в два байта те 1024, нужно вывести картинку из этих данных, и чтобы каждый пиксель отображал всю градацию 0-1024. Как такое можно сделать ? Желательно в желтом цвете ) Знаю формат pf24bit но там на каждый цвет только то байту.... На крайний случай можно в сером. Прогаю в Buildere Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 5 августа, 2017 Опубликовано 5 августа, 2017 · Жалоба куда вывести-то? во-первых обычные мониторы даже 8 бит нормально-то не отображают, а во-вторых далеко не каждый увидит разницу яркости в 0.5%, а уж тем более в градациях жёлтого цвета. увеличьте картинки да посмотрите, каждую ли ступеньку видно? ну а чтобы отобразить 10 бит, делите на 4 или логарифмируйте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 6 августа, 2017 Опубликовано 6 августа, 2017 (изменено) · Жалоба Вывод на монитор, теоретически вывести возможно и как это практически на си ? Поделить и логарифмировать всегда успеется, данные при этом теряются. Данные с гидролокатора и у них дин диапазон 10 бит, если выводить в 8 бит тот теряется мелкий рисунок А что это за картинки ? Изменено 6 августа, 2017 пользователем whale_nik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба практически на С: glfwWindowHint(): GLFW_RED_BITS, GLFW_GREEN_BITS, GLFW_BLUE_BITS или GLFWvidmode в полноэкранном режиме так как у операционной системы тоже может быть своё мнение по поводу глубины цвета окон. ну и WGL_ARB_pixel_format а картинки - верхняя просто 16х16=256 серых квадратов. чтобы увидеть границы между соседями приходится под разными углами на монитор смотреть (бюджетная версия изменения динамического диапазона lcd монитора :) ), да и то все не видно. можно попробовать для начала разные графические редакторы которые больше 8ми бит на цвет поддерживают. но вот отображают ли они их на самом деле хз. hdmi до каких-то недавних версий вроде имел 3 канала и 8b/10b и пиксельклок в 10 раз меньше, то есть даже в этом месте оно гвоздями к 8ми битам на цвет приколочено было. хотя сейчас наверное маркетологи помимо разрешений в 4К, 60fps и до цвета добраться уже должны были. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 6 августа, 2017 Опубликовано 6 августа, 2017 (изменено) · Жалоба У меня верхняя картина отлично все видно и монитор бюджетнее некуда. в OpenGL не силен, а есть вариант поближе в винде и железу ? Действительно надо попробовать какие вариацие серого еще заметны глазом на хорошем мониторе /телике У меня счас формат PixelFormat=pf24bit все понятно три байта каждый отвечает за свой цвет а всякие стороние библиотеки ноги сломаешь пока чего нить получишь Изменено 6 августа, 2017 пользователем whale_nik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба если данные только с одной компонентой, то надо просто в разные цвета раскрасить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 6 августа, 2017 Опубликовано 6 августа, 2017 (изменено) · Жалоба В разных цветах очень плохо получается опознать что там вообще нарисовано кроме новогодней елки ) Самое лучшее - желтый, хуже серый, далее синий, цветной самое ужасное что можно сделать. Данные - просто амплитуда отраженного сигнала в 10 битах Изменено 6 августа, 2017 пользователем whale_nik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба контурные линии добавте, может поможет. ну а не видя картинки сложно что-то советовать. У меня верхняя картина отлично все видно и монитор бюджетнее некуда. Вы ведь понимаете что там не 16 горизонтальных полос надо увидеть, а вертикальных. Различие между двумя соседними квадратами по горизонтали. Именно они на 1/256 по яркости отличаются, и увидеть и в тёмной и в светлой части картинки. Ну правда у меня ещё десятый виндовс что-то с настройками яркости монитора нехорошее сделал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба Квадратики видно, 1/512 было бы наверно предел. Картинка такая https://yadi.sk/d/wViaBAVG3LkeRh Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба raw бы 10ти битный, чтобы понять разницу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 августа, 2017 Опубликовано 6 августа, 2017 · Жалоба в OpenGL не силен, а есть вариант поближе в винде и железу ? Откройте справочник по WinAPI, в нём поиск по BitBlt (и др.функции этого семейства), а также - функции рисования. Создёте плоскость в памяти, рисуете на ней, а потом при помощи BitBlt или PatBlt, ... копируете картинку в экранную плоскость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 6 августа, 2017 Опубликовано 6 августа, 2017 (изменено) · Жалоба Откройте справочник по WinAPI, в нём поиск по BitBlt (и др.функции этого семейства), а также - функции рисования. Создёте плоскость в памяти, рисуете на ней, а потом при помощи BitBlt или PatBlt, ... копируете картинку в экранную плоскость. Каким образом тут 10 бит на пиксель ? raw бы 10ти битный, чтобы понять разницу. Пардон ) raw нет в природе тк данные сразу пишутся в gBitmap->PixelFormat=pf24bit; и сохраняются в bmp тк пока на пиксель 8 бит то приходиться вводить логарифмическую шкалу, те на "верхах" детализация почти отсутствует ( На картинке почти везде "низы" если появиться хорошо отражающий объект то теряется структура. Короче, я так понял придется создавать свой gBitmap с двумя байтами на монохромный пиксель и выводить своей же программой которая сможет его причитать. Изменено 6 августа, 2017 пользователем whale_nik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 7 августа, 2017 Опубликовано 7 августа, 2017 · Жалоба Каким образом тут 10 бит на пиксель ? Там можно и больше бит получить, не только 10. В цвете конечно. во-первых обычные мониторы даже 8 бит нормально-то не отображают, а во-вторых далеко не каждый увидит разницу яркости в 0.5%, а уж тем более в градациях жёлтого цвета. А нужны ли эти 10 бит на экране? Зачем реально нужно отображать одновременно и самые яркие и самые тёмные участки? Т.е. - если на картинке есть яркие участки (как я понимаю - эхо от ближайших объектов), и при этом есть тёмные участки (от дальних объектов) - так ли реально нужно их отображать вместе? У автора же интерактивное отображение, а не картинка сохраняемая в файл. Сделать скажем отображение только 64 уровня яркости (или 32 - сколько удобно). Младшие биты отбросить - эти участки будут отображаться чёрным. Если пользователь хочет заглянуть вглубь этих чёрных участков - он жмёт кнопку "приблизить" - старшие биты яркости постепенно отбрасываются (яркие участки соответствующие им маскируются на экране каким-то специальным шаблоном/цветом), но проступают, становятся ярче тёмные участки - глубинные слои. Как то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
whale 6 7 августа, 2017 Опубликовано 7 августа, 2017 (изменено) · Жалоба Так я и говорю придется делать свою программу на "приблизить". 10 бит еще нужны чтобы применять различные алгоритмы обработки а не только чтобы вывести на экран сразу все. Вот допустим как сделать gBitmap c 16 монохромными битами на пиксель ? Кто его сможет прочитать , вывести на экран пусть даже с 8 битами ? Вообще конечно подробно рассматривают уже потом, в записи. Изменено 7 августа, 2017 пользователем whale_nik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 7 августа, 2017 Опубликовано 7 августа, 2017 · Жалоба Так я и говорю придется делать свою программу на "приблизить". И это правильно :rolleyes: Вот допустим как сделать gBitmap c 16 монохромными битами на пиксель ? Кто его сможет прочитать , вывести на экран пусть даже с 8 битами ? Вот именно эта ваша программа и сможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться