程序思路流程

htuple类型的对象,把值赋给别的类型需要加.D(或者其他.I  .S)强转,别的类型复制给他不需要
htuple  hv_s
int a= (int)(hv_s.D);
hv_s=3;

HObject  类型变量传值不能释放内存,相当于引用传递,释放内存就没了,用完后再释放值
HTuple   类型即用即放,相当于值类型,不影响,也有引用类型,要注意

复杂的业务先在Bll层实现,再用UI层调用,类的对象创建在UI层就要传给BLL层,UI层用不到的就直接创建在BLL层,少一个参数传递

1、分层设计,先把各种dll库添加进来

2、写运动板卡类,把一些基本操作封装成方法,供mainfrom调用

3、写相机类,用反射切换相机,接口写相机的基础功能方法,实际相机类完善

4、打开窗口和显示图像写在图像处理类

5、写完运动控制,再写九点标定
      图像处理类写九点标定提取九点像素(算法)
      数学计算类写九点标定和保存矩阵
      点的坐标存在实体类

6、再写贴合业务,(坐标位置放入新的实体类对象再把对象放入集合,一个产品一个对象
      在数学计算层写     读取九点标定矩阵,计算物料实际抓取点
      在图像处理层写     提取物料像素点位置并显示轮廓(算法)
        在BLL层调用上两个层的方法实现业务------验证矩阵是否读取成功,循环采图,提取像素点,转实际点,点位运动抓取

7、写点胶业务
  图像处理   写获得运动轨迹参数-直线 圆(像素坐标)
  数学计算    写得到轮廓的实际脉冲运动参数(实际坐标)
  实体类新建二个存放像素和实际坐标(一个存放圆,一个存放直线)
BLL层调用图像处理和数学计算、实体类等等,实现业务,然后UI层调用BLL层

8、模板匹配找中心贴合业务

在haclon写好创建模板查找模板分别显示代码导入(把不同产品分类好),
创建模板:图像控件设置焦点  pb_ImageShow.Focus();//设置焦点
封装为两个方法在图像处理类,一个是画模板然后把区域存在本类全局变量(因为只有在这个类能用到),一个是生成模板,模板句柄(句柄,矩阵一般直接变量传输),显示轮廓
UI层调用,创建模板写画模板和生成模板,参数改变值事件写生成模板,
参数传递步骤:数据验证,数据封装,数据传递, 数据验证是对参数进行校验, 数据封装是把对应的参数传输到类的对象,数据传递把UI层修改后的参数通过类的对象传递到业务层实现
效果:点击模板划区域创建,调参数生成模板显示效果

查找模板:
图像处理类继续写:保存模型句柄方法,读入句柄方法,查找模板方法(不同产品像素参数放进不同类对象集合,后面就不用去判断,把集合当作参数传递)
数学计算层:写一个像素坐标转实际坐标方法,直接处理集合
BLL层业务实现:读标定矩阵,读模型,开线程循环(采图、显示、模板匹配得到像素、转实际、运动控制去走)
UI层调用业务层方法:数据验证,数据封装,数据传递

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值