реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вывод 16 бит на пиксел как сделать ?
whale_nik
сообщение Aug 5 2017, 21:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Всем привет!
Есть вопрос, имеется массив данных, каждое данное размером в два байта те 1024,
нужно вывести картинку из этих данных, и чтобы каждый пиксель отображал всю градацию 0-1024.
Как такое можно сделать ? Желательно в желтом цвете )
Знаю формат pf24bit но там на каждый цвет только то байту....
На крайний случай можно в сером.
Прогаю в Buildere
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 5 2017, 23:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



куда вывести-то?
во-первых обычные мониторы даже 8 бит нормально-то не отображают, а во-вторых далеко не каждый увидит разницу яркости в 0.5%, а уж тем более в градациях жёлтого цвета.


увеличьте картинки да посмотрите, каждую ли ступеньку видно?

ну а чтобы отобразить 10 бит, делите на 4 или логарифмируйте.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 6 2017, 07:00
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Вывод на монитор, теоретически вывести возможно и как это практически на си ?
Поделить и логарифмировать всегда успеется, данные при этом теряются.
Данные с гидролокатора и у них дин диапазон 10 бит, если выводить в 8 бит тот теряется мелкий рисунок
А что это за картинки ?

Сообщение отредактировал whale_nik - Aug 6 2017, 07:07
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 6 2017, 09:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



практически на С:

glfwWindowHint(): GLFW_RED_BITS, GLFW_GREEN_BITS, GLFW_BLUE_BITS
или GLFWvidmode в полноэкранном режиме так как у операционной системы тоже может быть своё мнение по поводу глубины цвета окон.

ну и WGL_ARB_pixel_format

а картинки - верхняя просто 16х16=256 серых квадратов. чтобы увидеть границы между соседями приходится под разными углами на монитор смотреть (бюджетная версия изменения динамического диапазона lcd монитора sm.gif ), да и то все не видно.

можно попробовать для начала разные графические редакторы которые больше 8ми бит на цвет поддерживают.
но вот отображают ли они их на самом деле хз.

hdmi до каких-то недавних версий вроде имел 3 канала и 8b/10b и пиксельклок в 10 раз меньше, то есть даже в этом месте оно гвоздями к 8ми битам на цвет приколочено было.

хотя сейчас наверное маркетологи помимо разрешений в 4К, 60fps и до цвета добраться уже должны были.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 6 2017, 12:19
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



У меня верхняя картина отлично все видно и монитор бюджетнее некуда.
в OpenGL не силен, а есть вариант поближе в винде и железу ?
Действительно надо попробовать какие вариацие серого еще заметны глазом на хорошем мониторе /телике
У меня счас формат PixelFormat=pf24bit все понятно три байта каждый отвечает за свой цвет а всякие стороние библиотеки ноги сломаешь пока чего нить получишь

Сообщение отредактировал whale_nik - Aug 6 2017, 12:23
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 6 2017, 12:40
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



если данные только с одной компонентой, то надо просто в разные цвета раскрасить.

Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 6 2017, 12:46
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



В разных цветах очень плохо получается опознать что там вообще нарисовано кроме новогодней елки )
Самое лучшее - желтый, хуже серый, далее синий, цветной самое ужасное что можно сделать.
Данные - просто амплитуда отраженного сигнала в 10 битах

Сообщение отредактировал whale_nik - Aug 6 2017, 12:48
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 6 2017, 13:00
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



контурные линии добавте, может поможет.
ну а не видя картинки сложно что-то советовать.


Цитата
У меня верхняя картина отлично все видно и монитор бюджетнее некуда.

Вы ведь понимаете что там не 16 горизонтальных полос надо увидеть, а вертикальных. Различие между двумя соседними квадратами по горизонтали. Именно они на 1/256 по яркости отличаются, и увидеть и в тёмной и в светлой части картинки.

Ну правда у меня ещё десятый виндовс что-то с настройками яркости монитора нехорошее сделал.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 6 2017, 13:38
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Квадратики видно, 1/512 было бы наверно предел.
Картинка такая https://yadi.sk/d/wViaBAVG3LkeRh
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 6 2017, 15:00
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



raw бы 10ти битный, чтобы понять разницу.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 6 2017, 16:36
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(whale_nik @ Aug 6 2017, 15:19) *
в OpenGL не силен, а есть вариант поближе в винде и железу ?

Откройте справочник по WinAPI, в нём поиск по BitBlt (и др.функции этого семейства), а также - функции рисования. Создёте плоскость в памяти, рисуете на ней, а потом при помощи BitBlt или PatBlt, ... копируете картинку в экранную плоскость.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 6 2017, 21:10
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Цитата(jcxz @ Aug 6 2017, 20:36) *
Откройте справочник по WinAPI, в нём поиск по BitBlt (и др.функции этого семейства), а также - функции рисования. Создёте плоскость в памяти, рисуете на ней, а потом при помощи BitBlt или PatBlt, ... копируете картинку в экранную плоскость.


Каким образом тут 10 бит на пиксель ?

Цитата(_pv @ Aug 6 2017, 19:00) *
raw бы 10ти битный, чтобы понять разницу.


Пардон ) raw нет в природе тк данные сразу пишутся в gBitmap->PixelFormat=pf24bit; и сохраняются в bmp
тк пока на пиксель 8 бит то приходиться вводить логарифмическую шкалу, те на "верхах" детализация почти отсутствует (
На картинке почти везде "низы" если появиться хорошо отражающий объект то теряется структура.

Короче, я так понял придется создавать свой gBitmap с двумя байтами на монохромный пиксель и выводить своей же программой которая сможет его причитать.

Сообщение отредактировал whale_nik - Aug 6 2017, 21:10
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 7 2017, 07:43
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(whale_nik @ Aug 7 2017, 00:10) *
Каким образом тут 10 бит на пиксель ?

Там можно и больше бит получить, не только 10. В цвете конечно.

Цитата(_pv @ Aug 6 2017, 02:54) *
во-первых обычные мониторы даже 8 бит нормально-то не отображают, а во-вторых далеко не каждый увидит разницу яркости в 0.5%, а уж тем более в градациях жёлтого цвета.

А нужны ли эти 10 бит на экране? Зачем реально нужно отображать одновременно и самые яркие и самые тёмные участки?
Т.е. - если на картинке есть яркие участки (как я понимаю - эхо от ближайших объектов), и при этом есть тёмные участки (от дальних объектов) - так ли реально нужно их отображать вместе?
У автора же интерактивное отображение, а не картинка сохраняемая в файл.
Сделать скажем отображение только 64 уровня яркости (или 32 - сколько удобно). Младшие биты отбросить - эти участки будут отображаться чёрным. Если пользователь хочет заглянуть вглубь этих чёрных участков - он жмёт кнопку "приблизить" - старшие биты яркости постепенно отбрасываются (яркие участки соответствующие им маскируются на экране каким-то специальным шаблоном/цветом), но проступают, становятся ярче тёмные участки - глубинные слои.
Как то так.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 7 2017, 07:50
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Так я и говорю придется делать свою программу на "приблизить".
10 бит еще нужны чтобы применять различные алгоритмы обработки а не только чтобы вывести на экран сразу все.

Вот допустим как сделать gBitmap c 16 монохромными битами на пиксель ? Кто его сможет прочитать , вывести на экран пусть даже с 8 битами ?
Вообще конечно подробно рассматривают уже потом, в записи.

Сообщение отредактировал whale_nik - Aug 7 2017, 07:50
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 7 2017, 08:24
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(whale_nik @ Aug 7 2017, 10:50) *
Так я и говорю придется делать свою программу на "приблизить".

И это правильно rolleyes.gif

Цитата(whale_nik @ Aug 7 2017, 10:50) *
Вот допустим как сделать gBitmap c 16 монохромными битами на пиксель ? Кто его сможет прочитать , вывести на экран пусть даже с 8 битами ?

Вот именно эта ваша программа и сможет.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 20:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016