Прошу помочь дописать код. В PaintBox после открытия изображения должна появляться гистограмма яркости цветов. Гистограмма должна вычисляться в массиве счетчиков, значения элементов которого - это пиксели изображения с соответствующей яркостью
- Код: Выделить всё
- unit Unit1;
 
 {$mode objfpc}{$H+}
 
 interface
 
 uses
 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
 Buttons, ExtDlgs;
 
 type
 
 { TForm1 }
 
 TForm1 = class(TForm)
 Button1: TButton;
 Edit1: TEdit;
 Image1: TImage;
 PaintBox1: TPaintBox;
 OpenPictureDialog1:TOpenPictureDialog;
 procedure Button1Click(Sender: TObject);
 
 private
 
 public
 
 end;
 
 var
 Form1: TForm1;
 Color: TColor;
 R,G,B,q: Byte;
 x,y,k : Integer;
 implementation
 
 {$R *.lfm}
 
 { TForm1 }
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 If OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
 
 k:=0;
 //Под яркостью пикселя будем понимать среднее значение его цветовых компонентов(R+G+B)div3.
 for x:=0 to 100 do
 for y:= 0 to 100 do begin
 q:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];     // у меня только одно число а их должно быть R, G, B. не понимаю как их получить
 {Color:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
 R:= GetRValue(Color);
 G:= GetGValue(Color);
 B:= GetBValue(Color); }
 k:= k + q;           // числа суммирую для проверки
 end;
 Edit1.Text:= Inttostr(k);  //вывод для просмотра
 end;
 
 
 end.