没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
1 解决思路
(1)计算标定板中两个相邻圆点,圆心距 dx,单位是像素跑 pixel,和实际物理尺寸 2mm
对应起来
(2)计算每个轮廓的周长 x_i
(3)一个比值,就可以计算实际轮廓长度
y_{i}
=
rac{x_i
×
2
}{dx}
2 代码实现
(1)计算圆心距
在计算标定板圆心距.txt 中,用 halcon 软件实现。实现效果如下
圆心距是在 58.9037 左右
dev_update_off ()
*读取图片
read_image (Image, 'Pic2_1.bmp')
*
* 关闭窗口
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*
* Segment a region containing the edges
*基于全局阈值的图像快速阈值化
fast_threshold (Image, Region, 0, 120, 7)
*获取一个边界区域
boundary (Region, RegionBorder, 'inner')
*通过区域的最小外接矩形,从矩形的 Top,Bottom,Left,Right 四个方向裁剪区域,得到所需
要的区域
clip_region_rel (RegionBorder, RegionClipped, 5, 5, 5, 5)
*用圆形结构元素扩张一个区域。
dilation_circle (RegionClipped, RegionDilation, 2.5)
*获得特定区域 Region 位置的图像
reduce_domain (Image, RegionDilation, ImageReduced)
*
*使用动态阈值分割图像
connection(Region, ConnectedRegions)
** 图像矫正(第一个标定板,是正的,就不用校正)
* 计算图像偏转角度
*orientation_region(ConnectedRegions,Phi)
*area_center (ConnectedRegions, Area, Row, Column)
* 取图像变换到水平位置的二维矩阵
*vector_angle_to_rigid(Row,Column,Phi,Row,Column,0,HomMat2D)
* 将二维矩阵作用到零件图像将其转换至水平位置
*affine_trans_image(ImageReduced,ImagTrans,HomMat2D,'cons-tant','false')
*提取亚像素精密边缘轮廓
edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20, 60)
*dev_display (ImageReduced)
剩余7页未读,继续阅读
杜拉拉到杜拉拉
- 粉丝: 22
- 资源: 325
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0