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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Вывод 16 бит на пиксел как сделать ?
Димыч
сообщение Aug 7 2017, 09:23
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 1-02-05
Из: the Earth
Пользователь №: 2 331



Цитата(whale_nik @ Aug 6 2017, 00:46) *
Всем привет!
Есть вопрос, имеется массив данных, каждое данное размером в два байта те 1024,
нужно вывести картинку из этих данных, и чтобы каждый пиксель отображал всю градацию 0-1024.
Как такое можно сделать ? Желательно в желтом цвете )
Знаю формат pf24bit но там на каждый цвет только то байту....
На крайний случай можно в сером.
Прогаю в Buildere


Со стороны "хардвера" Вам нужна такая видеокарта:
10/12-bit NVidia Graphic cards

и такой монитор:
10-bit NEC monitor

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

16 бит grayscale - это вряд ли. Хотя, у Вас небольшая путаница в исходных данных: 2 байта - это же никак не 1024 sm.gif
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 7 2017, 09:57
Сообщение #17


Гуру
******

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



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


Цитата(Димыч @ Aug 7 2017, 16:23) *
Со стороны "хардвера" Вам нужна такая видеокарта:
10/12-bit NVidia Graphic cards
и такой монитор:
10-bit NEC monitor
(и это ещё не самые дорогие решения).

вроде у nvidia все что после 9хх 10хх умеет в 10ти битный цвет, а не только квадры, у амд тоже есть карты по-проще, да даже встроенный интел что-то умеет.
и мониторы тоже есть попроще, не медицинские PA246Q, GW2765H.
только имхо ничем это для этой картинки не поможет.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 7 2017, 10:57
Сообщение #18


Местный
***

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



Цитата(Димыч @ Aug 7 2017, 13:23) *
16 бит grayscale - это вряд ли. Хотя, у Вас небольшая путаница в исходных данных: 2 байта - это же никак не 1024 sm.gif


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


Цитата(_pv @ Aug 7 2017, 13:57) *


С шумами я борюсь еще не вечер.
А как составить gBitmap для сохранения в png чтобы он 16бит /цвет поддерживал ?

Сообщение отредактировал whale_nik - Aug 7 2017, 10:58
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 7 2017, 11:22
Сообщение #19


Гуру
******

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



Цитата(whale_nik @ Aug 7 2017, 17:57) *
А как составить gBitmap для сохранения в png чтобы он 16бит /цвет поддерживал ?

взять libpng и просто писать в файл данные, png_write_image
без составления каких-либо gBitmapов, чтобы это не значило.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 7 2017, 14:27
Сообщение #20


Местный
***

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



Цитата(_pv @ Aug 7 2017, 15:22) *
взять libpng и просто писать в файл данные, png_write_image
без составления каких-либо gBitmapов, чтобы это не значило.


Не могли бы вы привести пример как записывать массив данных в два байта в png ?
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 7 2017, 14:47
Сообщение #21


Гуру
******

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



в гугле забанили?
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);
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 7 2017, 14:59
Сообщение #22


Местный
***

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



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

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


Гуру
******

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



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

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

7МБ это bmp, который 1600*1600*3байта = 7.6МБ.
PNG можно и 16ти битный GRAYSCALE сделать, это два байта на пиксель, плюс сжатие, которое правда на таких картинках не очень работает, но всё же. прикреплённая картинка в png занимает 2МБ с 8*3 = 24х битным цветом.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 7 2017, 16:19
Сообщение #24


Местный
***

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



Так и сделаю, буду сохранять данные в текстовом формате, а потом уже напишу или конвертатор в png или свое что то.
Всем спасибо.
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Aug 8 2017, 10:24
Сообщение #25


Местный
***

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



Еще один быстрый вопрос,
есть массив short data[1600]
как его вывести в файл одной строкой типа

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

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

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


Местный
***

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



Вопрос решился.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 13:36
Рейтинг@Mail.ru


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