Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2012, 08:01
Cooper72 Cooper72 вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 8
Репутация: 10
По умолчанию 16 бит оттенков серого

Каким образом можно вывести монохромное 16-битное изображение на монохромный медицинский монитор (16 бит оттенков серого)? При любой глубине цвета пикселя (24, 32 бит) удается отобразить лишь 256 оттенков серого. В какую сторону копать?
Ответить с цитированием
  #2  
Старый 21.05.2012, 22:28
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В сторону монохромности и копать. Т.е. преобразовать к 256-и цветам, при необходимости перевести в GrayScale.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 22.05.2012, 08:37
Cooper72 Cooper72 вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 8
Репутация: 10
По умолчанию

Так мне нужно не 256 а все 65536 оттенков серого на монитор вывести
Ответить с цитированием
  #4  
Старый 22.05.2012, 08:56
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Считается, что 256 оттенков достаточно для восприятия глазом, больше глаз не различает. Но есть еще проблемма оборудования, большинство современных матриц физически 6-бит и 8-бит эмулируется мерцанием и дизерингом. Хорошие матрицы отображают чесные 8-бит, сейчас появляются матрицы 10-бит. Видеоадаптеры тоже в основном 8-бит, хотя встречаются модели способные выводить 10-бит, профессиональные адаптеры могут обрабатывать 16-бит.
16-бит нужно для минимизации потерь связаных с округлениями при обработке изображений, при выводе обычно используют старший байт, иногда применяется дизеринг.

Последний раз редактировалось x128, 22.05.2012 в 09:02.
Ответить с цитированием
  #5  
Старый 22.05.2012, 16:34
Cooper72 Cooper72 вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 8
Репутация: 10
Восклицание

Цитата:
Сообщение от x128
Считается, что 256 оттенков достаточно для восприятия глазом, больше глаз не различает.
Глаз врача-рентгенолога воспринимает все 65 тысяч оттенков серого цвета От этого зависит качество диагностики.
Ответить с цитированием
  #6  
Старый 23.05.2012, 10:07
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Цитата:
Сообщение от Cooper72
Глаз врача-рентгенолога воспринимает все 65 тысяч оттенков
Это больше напоминает нашу рашу "-мужики настолько суровые, что ботинки шнуруют арматурой, а струей раскалывают писсуар..."
При условии, что используется качественная и откалиброванная система визуализации, переход между соседними значениями яркости при 8-битах глаз не заметит. Большее динамическое разрешение полезно для обработки, когда малозаметный фрагмент можно усилить без потери деталей, что при низком разрешении невозможно т.к. детали уйдут в область шума.

Последний раз редактировалось x128, 23.05.2012 в 14:13.
Ответить с цитированием
  #7  
Старый 23.05.2012, 11:37
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

В какую сторону копать?
Вообще говоря, если монитор подключён к VGA-разъёму на компьютере - то ответ - никак.
А если он имеет специальный интерфейс - то курить мануалы по этому монитору.

Так же можно предусмотреть программные механизмы изменения контрастности отдельных участков изображения.
Ответить с цитированием
  #8  
Старый 23.05.2012, 23:31
Cooper72 Cooper72 вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 8
Репутация: 10
По умолчанию

Монитор подключается через VGA/DVI. ничего специфичного нету. Для чего тогда производят 16 битные монохромные мониторы, если 8 бит максимум? При их ценнике в > 2000$
Ответить с цитированием
  #9  
Старый 24.05.2012, 07:35
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

http://ru.wikipedia.org/wiki/SVGA
Цитата:
SuperVGA (англ. Super Video Graphics Array) — общее название видеоадаптеров, совместимых с VGA, но имеющих расширенные по отношению к нему возможности - разрешения от 800х600 и выше при количестве цветов от 2(монохромный режим) до 16 миллионов (24 бит на пиксель)
24 бит на пиксель = 1 байт на цвет. Подозреваю, что в этом стандарте вообще невозможно передать больше 256 оттенков серого.
http://ru.wikipedia.org/wiki/DVI
Цитата:
Битов в пикселе: 24 (одинарный режим) или 25-48 (двойной, если передается 1 пиксель за такт)
Вероятно как-то можно, но только если напрямую.

В Windows повсеместно используется либо RGBA (4 байта red, green, blue, alpha), либо 4-байтовый RGB, и старший байт игнорируется. Не думаю, что используя Windows (а Delphi подразумевает именно эту операционную систему) у вас получится ваша затея.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 24.05.2012, 09:25
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Хотя, если видеокарта поддерживает видеорежим 16 бит на пиксель, то можно создать BMP с таким разрешением, заполнить его самому и затем попытаться отобразить.
Ответить с цитированием
  #11  
Старый 24.05.2012, 11:28
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

http://ru.wikipedia.org/wiki/HDMI
Цитата:
Добавлена поддержка «глубокого цвета» (deep color, 30-, 36-, 48-битный цвет, 10, 12 или 16 бит на каждый компонент RGB) в высоких разрешениях, вместо поддержки только 24-битного цвета
Интерфейсы есть, вопрос в том, сколько есть видеоадаптеров и мониторов способных работать в этих режимах.
Стандартные средства Windows возможно и не позволяют использовать более 8-бит, хотя формат BMP поддерживает 48-битный цвет, но если видеоадаптер поддерживает такую глубину цвета, то на уровне драйвера должен быть API для этих целей.

Самый главный вопрос, целесообразность такой визуализации. Я уже писал, что 16-бит нужно для обработки изображений, но был не услышан. Попробую проиллюстрировать.
test0.png
Сколько цветов на изображении? Цветов 6. Если хороший монитор и зрение, на сером можно увидеть границу в центре, на черном и белом нет. Если бы на изображении присутствовал шум, как на реальных изображениях, переход градаций был бы не видим даже на сером. Переход цвета на сером в 16-битном режиме выглядел бы как сплошной серый т.к. между оттенками на границах, появились бы еще 256 оттенков и сгладили бы переход.

Большая глубина (разрядность) полезна для обработки изображений, для выделения малозаметных деталей.
оригинал 16-бит:
test1.png

обработанное изображение (обработка в 8-бит)
test2.png

обработанное изображение (обработка в 16-бит)
test3.png

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

Цифровая обработка медицинских изображений - первая статья из поиска, в ней коротко обосновывается необходимость обработки с примерами изображений.
Ответить с цитированием
  #12  
Старый 25.05.2012, 08:05
Cooper72 Cooper72 вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 8
Репутация: 10
По умолчанию

x128:
Про обработку 16 бит Вы совершенно правы. Я уже использую оптимизацию по гистограмме. Но все-же искал возможность использовать оборудование по-максимуму.
Первое изображение (три квадрата) на своем лэптопе я увидел как три квадрата. Съездил в поликлинику, посмотрел на монохромном дисплее и отчетливо увидел границу на сером и белом квадратах, на черном не заметно (5 цветов из 6).
icWasya
Цитата:
Хотя, если видеокарта поддерживает видеорежим 16 бит на пиксель, то можно создать BMP с таким разрешением, заполнить его самому и затем попытаться отобразить.
Можно поподробнее про такое решение?

Последний раз редактировалось Cooper72, 25.05.2012 в 08:09.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter