当前位置:网站首页>项目实战四 图像拼接
项目实战四 图像拼接
2022-07-21 07:38:00 【Σίσυφος1900】
一、简介
图像拼接是我们常用到的一种技术,我个人曾经天真的以为项目中最长用的是用halcon 案例中的那种来拼图,但是真正做项目的时候并不是这样的,这是项目中的一个一个真实案例。
二、项目背景
1、有 上、中、下三张图片,且每张图片的右边是一排标定圆
2、上面图的标定圆能拍到9个圆孔,中间的图片拍到上图的全部和下图的部分保证有重叠的,下图和中图肯定也要有重叠,如下图:
三、拼图原理
如前面两步所示:
第一步:我们需要找到图片右边的标定圆,找圆的时候,a、先通过blob 分析找出想要的圆孔的轮廓,然后拟合圆,还有一种方法就是计算出圆孔的area_center,然后用二维测量卡尺来拟合圆
* 通过面积来计算半径
Radius:=pow(mean(Area)/rad(180),0.5)
* 创建卡尺的
create_metrology_model (MetrologyHandle)
get_image_size (ImageReduced, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
tuple_gen_const (|Row|, Radius, Radiuses)
add_metrology_object_circle_measure (MetrologyHandle, Row, Column, Radiuses, 5, 10, 1, 30, ['num_measures','measure_transition','measure_select','min_score'], [16,'positive','all',0.1], Index_circle)
apply_metrology_model (ImageReduced, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, Index_circle, 'all', 'result_type', 'all_param', Parameter_circle)
第二步:第一步中我们得到的各个图片的圆孔行列坐标,这一步只要是计算重叠位置的差,分布是上图和中图 的offsetx1 offsety1,以及中图和下图的offsetx2,offsety2 。计算的方式有很多,这里就不说了。
第三步:通过tile_images_offset 算子来拼图
四、显示效果
核心代码:
找圆
* 得到9个圆的半径和 行列坐标
Albert_Carib_Circle (ImageResult, ContCircleT, 'TOP', tilParams[6], [tilParams[7],tilParams[9],tilParams[10]], [tilParams[8],1,tilParams[11]], [], ProcessObjOut, ProcessObjOut, RowT, ColumnT)
SetDictObject (ContCircleT, ProcessObjOut, '上图找圆结果')
* 计算相邻两个圆之间的距离
distance_pp (RowT[0:|RowT|-2], ColumnT[0:|RowT|-2], RowT[1:|RowT|-1], ColumnT[1:|RowT|-1], Distance)
a := max(Distance)-min(Distance)
拼图:
OffsetYX := [0,0,OffsetY11,OffsetX11,OffsetY11+OffsetY22,OffsetX11+OffsetX22]
* set_dict_tuple (DictHandle_tile, '标定圆提取', ProcessObjOut)
*拼图
gen_empty_obj (TiledImageLight)
gen_empty_obj (TiledImageDark)
get_image_size (ObjectSelected, Width, Height)
tile_images_offset (ImageLights, TiledImageLight, [OffsetYX[0],OffsetYX[2],OffsetYX[4]], [OffsetYX[1],OffsetYX[3],OffsetYX[5]], [0,0,0], [0,0,0], [Height,Height,Height], [Width,Width,Width], Width, Height*3-2000)
最终效果:
边栏推荐
猜你喜欢
[terminal _1]-xshell 5 the hottest terminal software!
Uniapp introduces Tencent map
UnityWebGl项目总结(未完)
Spa single page learning and understanding
Database connection pool
转载:CAN总线终端电阻
44: Chapter 4: develop file service: 5: integrate fastdfs in [files] file service to realize the logic of [upload avatar]; (including: integrating fastdfs in the project; cross domain issues; creating
Markdown 转 PDF API 数据接口
SPA单页面学习理解
Malloc et configurateur d'espace
随机推荐
Mysql05(视图)
接口测试中,要验证和使用数据库吗
First knowledge of loop and branch statements in C language
部署服务器
硬核Fiddler抓包工具大型攻略(完)Fiddler终极篇
Mysql04 (special train)
连接远程服务器的vscode无法格式化代码/文档(已解决)
OpenGL渲染管道
Basic usage of Networkx
软件测试需要学习什么?
Steve Aoki's Avatar will come to the sandbox metauniverse!
在go语言中获取当前时间,以及md5、hmac、sha1算法的简单实现
CRM 概念:了解Leads、Prospect、MQL 和 SQL 的概念
ModuleNotFoundError: No module named ‘pysat.solvers‘(已解决)
Appium获取和点击坐标,元素不方便定位时非常好用
Appium自动化框架升级到最新的2.0
七甲川染料CY7标记肽核酸PNA合成方法CY7-PNA
Leetcode sword finger offer II 061 And the minimum K number pairs***
数据库事务隔离级别
转载:CAN总线终端电阻