Показать сообщение отдельно
  #2  
Старый 28.10.2016, 19:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

не знаю как делает это матлаб, но можно просто попробовать значение ячейки матрицы просто отконвертировать в TColor и отрисовать точку соотв. цветом. Вот типа простейший пример (не оптимальный по скорости и без масштабирования):
Код:
function DrawImageByMatrix(A : Array Of Array Of Integer) : TBitmap;
var
  I, J : Integer;
begin
  Result := TBitmat.Create;
  Result.Height := Length(A);
  Result.With :=  Length(A[Low(A)]);
  Result.PixelFormat  := pf24bit;
  Result.Canvas.Brush.Color := clWhite;
  Result.Canvas.FillRect(Rect(0,0,Result.Width,Result.Height));

  For I := Low(A) To High(A) Do
    For J := Low(A[i]) To High(A[i]) Do
      Result.Canvas.Pixels[J,I] := TColor(A[I,J]);
end;

В примере в матрице считаем, что первой координатой идет Y, второй - Х (т.е. обратное экранным).
Ответить с цитированием