Перейти к содержанию
    

Вывод 16 бит на пиксел как сделать ?

Всем привет!

Есть вопрос, имеется массив данных, каждое данное размером в два байта те 1024,

нужно вывести картинку из этих данных, и чтобы каждый пиксель отображал всю градацию 0-1024.

Как такое можно сделать ? Желательно в желтом цвете )

Знаю формат pf24bit но там на каждый цвет только то байту....

На крайний случай можно в сером.

Прогаю в Buildere

 

Со стороны "хардвера" Вам нужна такая видеокарта:

10/12-bit NVidia Graphic cards

 

и такой монитор:

10-bit NEC monitor

 

(и это ещё не самые дорогие решения).

 

16 бит grayscale - это вряд ли. Хотя, у Вас небольшая путаница в исходных данных: 2 байта - это же никак не 1024 :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сохраняйте например в PNG который 16бит на цвет поддерживает, а потом "приблизить" можно в любом просмотрщике картинок, irfanview например (или через imagemagic преобразовать), покрутив яркость/контраст.

однако на вашей картинке шумы такие, что отлогорифмированные 10 бит в 8 ничего там не испортят.

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

 

 

Со стороны "хардвера" Вам нужна такая видеокарта:

10/12-bit NVidia Graphic cards

и такой монитор:

10-bit NEC monitor

(и это ещё не самые дорогие решения).

вроде у nvidia все что после 9хх 10хх умеет в 10ти битный цвет, а не только квадры, у амд тоже есть карты по-проще, да даже встроенный интел что-то умеет.

и мониторы тоже есть попроще, не медицинские PA246Q, GW2765H.

только имхо ничем это для этой картинки не поможет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 бит grayscale - это вряд ли. Хотя, у Вас небольшая путаница в исходных данных: 2 байта - это же никак не 1024 :)

 

Что два байта что 1024 для сохранения уже не важно )

 

 

 

С шумами я борюсь еще не вечер.

А как составить gBitmap для сохранения в png чтобы он 16бит /цвет поддерживал ?

Изменено пользователем whale_nik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как составить gBitmap для сохранения в png чтобы он 16бит /цвет поддерживал ?

взять libpng и просто писать в файл данные, png_write_image

без составления каких-либо gBitmapов, чтобы это не значило.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

взять libpng и просто писать в файл данные, png_write_image

без составления каких-либо gBitmapов, чтобы это не значило.

 

Не могли бы вы привести пример как записывать массив данных в два байта в png ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в гугле забанили?

http://zarb.org/~gc/html/libpng.html

http://www.labbookpages.co.uk/software/imgProc/libPNG.html

 

png_set_IHDR(png_ptr, info_ptr, width, height, 816, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Я так понимаю файл будет в два раза больше чем нужно для дела, те если сейчас он 7 мб то будет 14мб уже многовато.

А другой вариант если просто записывать двумерный массив в файл где на каждое измерение 2 байта, а потом написать прогу которая

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

Заодно можно написать любые фильтры по желанию, причем это будет быстро и легко )

Изменено пользователем whale_nik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для себя конечно можно хранить как угодно, хоть просто в 16ти битном raw, если размеры картинки сами знаете и они не меняются

 

а PNG это просто простой и распространённый формат, который все просмотрщики понимают, тогда можно просто тот же irfanview использовать, в нём можно и зумить и цветокоррекцию делать.

 

7МБ это bmp, который 1600*1600*3байта = 7.6МБ.

PNG можно и 16ти битный GRAYSCALE сделать, это два байта на пиксель, плюс сжатие, которое правда на таких картинках не очень работает, но всё же. прикреплённая картинка в png занимает 2МБ с 8*3 = 24х битным цветом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и сделаю, буду сохранять данные в текстовом формате, а потом уже напишу или конвертатор в png или свое что то.

Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще один быстрый вопрос,

есть массив short data[1600]

как его вывести в файл одной строкой типа

 

ofstream fout;

fout.write((char*) &data, sizeof data);

 

тут выводит но какую то фигню

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...