Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2016, 20:06   #11
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Если честно, я не специалист по форматам изображений...

Что я могу посоветовать?

1) Тебе сначала нужно разобраться с этим форматом:

Код:
-19715	17495	-9090	-5335
-19545	14235	-1420 -630
-17725	18535	-2590 230
-13290	21705	1325	195
Что означают эти цифры?

Поищи в интернете эту информацию. Например, вот я что-то нашёл:

http://www.mathworks.com/help/matlab/ref/imagesc.html

Поищи ещё....

2) Когда изучишь этот формат, нужно "сопоставить его с форматом RGB".
т.е. надо писать функцию, которая преобразует один формат вывода изображения в другой (в RGB). А потом RGB-массив подставишь в мой, ранее написанный код, и всё - дело в шляпе.

Небольшие пояснения. RGB формат - это самый старый из форматов хранения изображения. RGB (сокращения от Red Green Blue) означает что каждый пиксел изображения хранится или выводиться по 3-м цветам (красному+зеленому+синему); совмещая эти три базовых цвета в разных пропорциях можно вывести любую (отличаемую человеческим глазом) картинку...

Понимаешь? Для RGB нужно матрица типа такой:

Код:
197 17 54
30 10 58
57 17 58
а у тебя матрица из 4-х параметров...

Короче, нужно тебе писать конвектор изображения... А это работа не на 5 минут (это не лабу студенту делать); на этом форуме есть раздел ("ФРИЛАНС"), так вот, за такую работу там люди деньги берут...

А если ты не хочешь платить, тогда надо поработать... Начни, я уже писал об этом, с изучения этого "4-х значного формата" (что означают эти цифры?). Потом сопоставь с RGB (как нужно преобразовать строчку из 4-х элементов в строчку из трёх). После чего - напиши функцию-конвертор.

Пока всё.

Последний раз редактировалось ura_111; 28.10.2016 в 20:09.
ura_111 вне форума Ответить с цитированием
Старый 28.10.2016, 20:43   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Преобразование от минимального значения до максимального, скажем от синего до красного с использованием HLS. Но в лоб получится примерно равномерно какой-то серо-буро-малиновый цвет, там цифирь сильно вперемешку. Видимо нужно как-то анализировать плотность распределения значений по площадям
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.10.2016, 20:14   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Извиняюсь за вчерашний бред, почитал что такое matlab и визуализация в нем. В общем-то этот матлаб и в глаза ни когда не видел, только здесь на форуме название иногда попадалось. Поскольку о палитре ТС не упоминает, решил что в таблице просто цвета, так оно и оказалось. Вот простенько в канвас формы нарисовал, предварительно выгрузив таблицу в xls с разделителями. Отпечатки однако Цвета r g b наверно не правильно выбрал. Возможно и отброшенный байт какую-то роль играет
Код:
procedure TForm1.Button1Click(Sender: TObject);
var xList1,xList2: TStringList;
    i,j,xRows,xCols: Integer;
    r,g,b: Word;
    d: DWORD;
begin
  xList1:=TStringList.Create;
  xList1.LoadFromFile('e:\Новая папка (39)\attachment.txt');
  xRows:=xList1.Count;

  xList2:=TStringList.Create;
  xList2.Delimiter:=#9;
  xList2.DelimitedText:=xList1.Strings[0];
  xCols:=xList2.Count;

  for i:=0 to xRows-1 do begin
    xList2.DelimitedText:=xList1.Strings[i];
    for j:=0 to xCols-1 do begin
      d:=StrToInt(xList2.Strings[j]);
      r:=d and $FF;
      g:=(d and $FF00) shr 8;
      b:=(d and $FF0000) shr 16;
      Canvas.Pixels[j,xRows-1-i]:=RGB(r,g,b);
    end;
  end;
  xList1.Free;
  xList2.Free;
end;
Изображения
Тип файла: jpg Безымянный.jpg (58.0 Кб, 141 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.10.2016 в 20:25.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в нахождении max и min значений в строке матрицы kasteton Помощь студентам 2 07.01.2014 13:50
сортировка строк матрицы по убыванию значений элементов столбца siner Паскаль, Turbo Pascal, PascalABC.NET 2 14.11.2012 08:25
диапозон значений элементов для каждой строки двумерной матрицы gagarin614 Visual C++ 1 09.11.2011 12:37
сумма максимальных значений элементов столбцов матрицы motaro Помощь студентам 2 26.11.2009 19:00
Определение собственных значений для матрицы 2-го порядка Игорь777 Помощь студентам 0 26.04.2009 18:33