Delphi 图像二值化


本文整理自网络,侵删。

 

uses

  Vcl.Imaging.pngimage, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,

  Vcl.ExtCtrls, Vcl.ComCtrls;

  

procedure TForm1.btn_erzhihuaClick(Sender: TObject);

var

  p: PByteArray;

  Gray, x, y: Integer;

  Bmp: TBitmap;

begin

 

  Bmp := TBitmap.Create;

  Bmp.Assign(img1.Picture.Bitmap);

    //设置为24位真彩色

  Bmp.PixelFormat := pf24Bit;

  randomize;

 

  for y := 0 to Bmp.Height - 1 do

  begin

    p := Bmp.scanline[y];

    for x := 0 to Bmp.Width - 1 do

    begin

 

      //一个象素点三个字节

      Gray := Round(p[x * 3 + 2] * 0.3 + p[x * 3 + 1] * 0.59 + p[x * 3] * 0.11);

      if Gray > 120 then //全局阀值128

      begin

        p[x * 3] := 255;

        p[x * 3 + 1] := 255;

        p[x * 3 + 2] := 255;

      end

      else

      begin

        p[x * 3] := 0;

        p[x * 3 + 1] := 0;

        p[x * 3 + 2] := 0;

      end;

    end;

  end;

  ClearPicNoise(Bmp, 2);

  img2.Picture.Bitmap.Assign(Bmp);

  Bmp.Free;

end;

来源:http://www.coder163.com/language/delphi/

相关阅读 >>

Delphi 使用twebbrowser组件保存网页为html和mht文件

Delphi编程如何判断图片文件的真实类型?

Delphi 利用驱动最简单结束进程的方法

Delphi richedit1 设置字体

Delphi的tservice 服务路径获取 dll中获取文件路径

Delphi 实现php的urlencode编码效果

Delphi之伪造referer下载文件

用tidftp控件实现ftp协议

Delphi(更改图标)

Delphi7 中tstringlist的delimiter delimitedtext有bug,字符串分割有问题

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...