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之数组

检测是否按下键盘或鼠标,如果超过5分钟没有操作则认为用户已经离开

Delphi 怎么将一个文件流转换成字符串?

Delphi 锁住listview防止刷新

Delphi 控制台程序加图标方法

Delphi webbroker isapi 示例说明

Delphi10.3构造一个json数据的第二种方法,并格式化输出

Delphi 用dde控制word

Delphi字符串内多个空格合为一个空格

Delphi 调用api打开文件 使用系统默认打开方式进行打开

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



打赏

取消

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

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

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

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

评论

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