二值化还用找控件
function duoval(const bitmap: tbitmap): tbitmap;
var
i, j: integer;
RowOriginal, RowProcessed: prgbtriplearray;
grayval: integer;
begin
RESULT := TBitmap.Create;
RESULT.Width := bitmap.Width;
RESULT.Height := bitmap.Height;
bitmap.PixelFormat := pf24bit;
RESULT.PixelFormat := bitmap.PixelFormat;
for j := 0 to bitmap.Height - 1 do
begin
RowOriginal := bitmap.ScanLine[j];
RowProcessed := result.ScanLine[j];
for i := 0 to bitmap.Width - 1 do
begin
grayval := (77 * RowOriginal.rgbtRed + 151 * RowOriginal.rgbtGreen + 28 * RowOriginal.rgbtBlue) shr 8;
if grayval > 128 then
begin
RowProcessed.rgbtRed := 255;
RowProcessed.rgbtGreen := 255;
RowProcessed.rgbtBlue := 255;
end
else
begin
RowProcessed.rgbtRed := 0;
RowProcessed.rgbtGreen := 0;
RowProcessed.rgbtBlue := 0;
end;
end;
end;
end;