Podemos empezar por contar cuantos píxeles de cada color hay en la imagen:
Código Delphi
[-]
var
i,j: Integer;
Histograma: Array[0..255] of Integer;
begin
FillChar(Histograma,Sizeof(Histograma),#0);
for j:= 0 to Image1.Picture.Bitmap.Height - 1 do
for i:= 0 to Image1.Picture.Bitmap.Width - 1 do
inc(Histograma[Image1.Picture.Bitmap.Canvas.Pixels[i,j] and $FF]);
end;