zoukankan      html  css  js  c++  java
  • 图像的浮雕处理效果

    原理:

      图像的浮雕处理效果就是突出图像中物体,而突出图像中的物体一般是加强物体边界的显示效果。一般采用的方法是:如果两个相邻的像素差别不大,则认为这两个像素在一个物体上,此时可以用一个颜色填充,如果两个相邻像素颜色差别较大则显然不在一个物体上,此时加强边界效果。

    实例:

      

    var
      Form19: TForm19;
      Map1: TBitmap;
    implementation

    {$R *.dfm}

    procedure TForm19.FormCreate(Sender: TObject);
    begin
         OpenDialog1.DefaultExt:=GraphicExtension(TBitmap);
         OpenDialog1.Filter:=GraphicFilter(TBitmap);
         if OpenDialog1.Execute then
         begin
            Map1:=TBitmap.Create;
            Map1.LoadFromFile(OpenDialog1.FileName);
            Image1.Picture.Bitmap:=Map1;
         end;
    end;


    procedure TForm19.Button1Click(Sender: TObject);
    var
      xmax,ymax,i,j:integer;
      r,g,b:integer;

    begin
      xmax:=Image1.Picture.Bitmap.Width-1;
      ymax:=Image1.Picture.Bitmap.Height-1;
      Label1.Caption:='浮雕特效处理中,请稍后...';
      form19.Refresh;

      Progressbar1.Min:=0;
      progressbar1.Max:=xmax;
      progressbar1.Position:=0;
      progressbar1.Step:=1;
      form19.refresh;

      for i:=0 to xmax-1 do
      begin
        progressbar1.StepIt;
        for j:=0 to ymax-1 do
        begin
          r:=GetRValue(Image1.Canvas.Pixels[i,j])-GetRValue(Image1.Canvas.Pixels[i+1,j+1])+128;
          g:=GetGValue(Image1.Canvas.Pixels[i,j])-GetGValue(Image1.Canvas.Pixels[i+1,j+1])+128;
          b:=GetBValue(Image1.Canvas.Pixels[i,j])-GetBValue(Image1.Canvas.Pixels[i+1,j+1])+128;

          if r>255 then r:=255
          else if r<0 then r:=0;

          if g>255 then g:=255
          else if g<0 then g:=0;

          if b>255 then b:=255
          else if b<0 then b:=0;
          Image1.Canvas.Pixels[i,j]:=RGB(r,g,b);

        end;
      end;

      image1.Refresh;
      Label1.Caption:='浮雕特效处理完成...';

    end;

  • 相关阅读:
    C# List 查找重复项 Distinct()方法
    AE单词备忘
    UML建模—EA创建Use Case(用例图)
    UML之用例图
    是时候改变你的开发方式了-XAF信息系统快速框架介绍
    教你5分钟做个手机APP[视频]
    教你5分钟做个手机APP[视频]
    在.NET 框架中使用 C# 8 和可空引用类型
    C# 9 提案:模块初始化器
    How to: Filter a Report Parameter's Lookup 如何:筛选报表参数的查找
  • 原文地址:https://www.cnblogs.com/huking/p/1704996.html
Copyright © 2011-2022 走看看