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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.03.2013, 10:51
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию Прочесть формат

Первые 2048 байт - заголовок со служебной информацией (не имеет особого значения, пропускаем).
С 2048 байта идет информация о 2048*2500 пикселях изображения, оттенки серого, 2 байта на пиксель, т.е. 10240000 байт на само изображение. Тип данных в пикселе тоже не известен.

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

Код:
var
 w: Word;
 F: TFileStream;
 x, y, count, gray: Integer;
 Buffer: array [0..1] of byte;
begin
 F := TFileStream.Create('ImgFile', fmOpenReadWrite);
 count := 0;
 for y := 1 to 2500 do begin
   for x := 1 to 2048 do begin
     F.Seek(2047 + 2 * count, soFromBeginning);
     F.Read(Buffer, Length(Buffer));

     w := MakeWord(Buffer[0], Buffer[1]);
     gray := Round(256 * w / 2047);
     Image1.Canvas.Pixels[x, y] := RGB(gray, gray, gray);
     count := count + 1;
   end;
   Application.ProcessMessages;
 end;
 F.Free;

Файл:
http://nekaka.com/d/R635YFwPqV

Статья, которой пользовался:
http://www.delphimaster.ru/articles/pixels/

Последний раз редактировалось ART, 29.03.2013 в 11:56.
Ответить с цитированием
  #2  
Старый 29.03.2013, 11:05
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Формат данных бы определить, было бы попроще.
Неизвестен до какой степени? На каком оборудовании создавался Image (фирма марка мб...) Или это смоделированный файл в каком нибудь MatLab Gate Geant?

ЗЫ. Вчера лекция в институте по форматам изображений в томографии была

Если это какой-нибудь ECAT7 то без чтения заголовков никак не обойтись.
Ответить с цитированием
  #3  
Старый 29.03.2013, 11:15
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

На изображении написано Kodak Ektascan gp-25. Хотя это пленка наверное. Исходный формат скорее всего KESPR CR

Последний раз редактировалось ART, 29.03.2013 в 11:20.
Ответить с цитированием
  #4  
Старый 29.03.2013, 11:26
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Первое это кассета, где плёнка устанавливается. А формат обыкновенный CR.

Я правильно понимаю, что вас не устраивает цвет?(Если убрать все издевательства над w, которые вы сделали то картинка получается зелёной) и что нужно в graystyle отобразить?
Ответить с цитированием
  #5  
Старый 29.03.2013, 11:45
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Нужно черно белое изображение. Я так понимаю должны быть плавные переходы, а не рваные области одного цвета.
Ответить с цитированием
  #6  
Старый 29.03.2013, 12:03
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Знающие люди вот что сказали:

"С, неважно какой формат изображения. В каждом пикселе лежит интенсивность. И как ты её будет отображать - твоё дело: цвет или чёрно-белый. В этом изображении я вижу, что нету фильтра. Руками такой написать можно, но это очень не простая задача.

С уважением, Л."

В общем, если в двух словах, то надо просто применить фильтрацию. Какую? Есть туча книг по этой теме. И математики там с Фурье преобразованиями просто тьма.

Моё мнение : надо смотреть в сторону ITK. Это гигантская библиотека для работы с Томографическими изображениями.

Последний раз редактировалось Uniq!, 29.03.2013 в 12:05.
Ответить с цитированием
  #7  
Старый 29.03.2013, 12:11
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Неверно указан размер изображения, верный - 2048х2502
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter