以下是em-hits网站的图灵
通过灰度算法后的结果如下
可以看到,图象的干扰已经被去掉了,代码如下
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
Bmp.Assign(Image1.Picture.Bitmap);
Bmp := BTGray(Bmp);
Bmp.SaveToFile('c:/x.bmp');
end;
function BTGray(Bmp: TBitmap): TBitmap;
var
x, y: Integer;
Color: TColor;
begin
Bmp.PixelFormat := pf24bit; Result := TBitmap.Create; Result.PixelFormat := pf24bit; Result.Width := Bmp.Width; Result.Height := Bmp.Height;
for x := 0 to Bmp.Width - 1 do for y := 0 to Bmp.Height - 1 do
begin
Color := Bmp.Canvas.Pixels[x, y];
Result.Canvas.Pixels[x, y] := Round(GetRValue(Color) * 0.3 + GetGValue(Color) * 0.59 + GetBValue(Color) * 0.11);
end;
FreeAndNil(Bmp);
end;