procedure THaarWavelet.convert(Image:TBitmap;Data:PYIQTripleArray);
var
x,y:cardinal;
pixelData:PYIQTripleArray;
pointerRow:PRGBTripleArray;
begin
pixelData:=Data;
for y:=0 to IMAGE_SIZE-1 do
begin
pointerRow:=Image.ScanLine[y];
for x:=0 to IMAGE_SIZE-1 do
begin
with pointerRow[x],pixelData[y,x] do
begin
// ** Coefficents from Wikipedia **
Y:=(0.299*rgbtRed + 0.587*rgbtGreen + 0.114*rgbtBlue)/256.0;
I:=(0.595716*rgbtRed - 0.274453*rgbtGreen - 0.321263*rgbtBlue)/256.0;
Q:=(0.211456*rgbtRed - 0.522591*rgbtGreen + 0.311135*rgbtBlue)/256.0;
end;
end;
end;