• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi图像分割[转载]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
delphi 图像分割

//预定义
var //在此之前可用const定义常量
//定义图像绘制序列
  Pic: array[1..16] of byte = (2, 2, 2, 3, 3, 3, 4, 4, 5, 4, 5, 4, 9, 10, 10, 11);
//定义
  基层图像与临时图像
    FormBmp, TempBmp: TBitmap;
//定义点
  P, PX, PY: integer;
//定义区域
  R1, R2: TRect;

//初始化
var
  width, height: integer; //设置图像中纵横图素的数量
begin
  width := 需要的横向图素数量;
  Height := 需要的纵向图素数量;
  Formbmp := TBitmap.Create;
  formbmp.LoadFromFile(GetCurrentDir + '\文件名'); //载入图像
  Tempbmp := Tbitmap.Create;
  tempbmp.Width := width * 8; //设置临时图像的宽度与高度
  tempbmp.Height := height * 8;
end;

//图像操作
var
  x, y: integer;
begin
  tempbmp.Canvas.CopyMode := cmSrcCopy; //设置复制模式
  for y := 0 to 原图板纵向图素数量 - 1 do
  begin
    for x := 0 to 原图板横向图素数量 - 1 do
    begin
      P := pic[y * 横向图素数量 + x]; //从图像序列中取点
      if p <> 0 then
      begin
        px := (p mod 面板图素横向图素个数) * 单个图素宽度;
        py := (p div 面板图素横向图素个数) * 单个图素高度;
        r1 := rect(px, py, px + 单个图素宽度, py + 单个图素高度);
        r2 := rect(x * 单个图素宽度, y * 单个图素高度, x * 单个图素宽度 + 单个图素宽度, y * 单个图素高度 + 单个图素高度);
        tempbmp.Canvas.CopyRect(r2, formbmp.Canvas, r1);
        //从原图板FormBmp中取出r1区域的图素并将其复制到r2区域
      end;
    end;
    form1.Canvas.CopyMode := cmSrcCopy;
    form1.Canvas.Draw(0, 0, tempbmp); //将临时图像显示到屏幕
  end;
end;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab基础命令发布时间:2022-07-18
下一篇:
【MATLAB】常用命令快速入门,国赛加油发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap