一、图像拼接步骤

1.拍图

2.图像预处理

3.提取特征点

4.特征点匹配

5.求变换矩阵

6.拼接

二、拼接算子 

1.proj_match_points_ransac(Image1, Image2 : : Rows1, Cols1, Rows2,Cols2, GrayMatchMethod, MaskSize, RowMove,ColMove, RowTolerance,ColTolerance, Rotation,MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed :HomMat2D, Points1, Points2)
说明:通过点对匹配(点与点之间对应关系),计算两个图像之间的投影变换矩阵

参数简介:

image1(in):输入图像1(可以输入图像对)

image2(in):输入图像2(可以输入图像对)

Rows1 (input_control):图1特征点的行坐标。(Image1特征点的行列坐标)

Cols1 (input_control):图1特征点的列坐标。

Rows2 (input_control):图2特征点行坐标(Image2特征点的行列坐标)

Cols2 (input_control):图2特征点的列坐标。

GrayMatchMethod (input_control) :灰度值比较度量。(‘ssd’,则使用灰度值差的平方和,‘sad’表示绝对差的和,‘ncc’表示归一化的互相关。)
MaskSize (input_control) :灰度掩膜尺寸。(将图片分为很多小格子,在小格子内进行匹配)

RowMove (input_control):平均行坐标移位。

ColMove (input_control) :平均列坐标偏移。

RowTolerance (input_control):匹配搜索窗口的半高。

ColTolerance (input_control) :匹配搜索窗口的半宽。

Rotation(input_control) :旋转角度范围。

MatchThreshold (input_control) :灰度值匹配阈值。(只有当度量值低于 MatchThreshold( 匹配阈值) (‘ssd’,‘sad’)或高于 MatchThreshold (‘ncc’)时,才接受找到的匹配。)

EstimationMethod (input_control):变换矩阵估计算法。
DistanceThreshold (input_control):转换一致性检查的阈值。

RandSeed (input_control) :为随机数生成器生成种子。

HomMat2D (out) :齐次射影变换矩阵。

Points1 (out) :图1中匹配输入点的索引。

Points2 (out) :图2中匹配输入点的索引。

2.gen_projective_mosaic(Images : MosaicImage : StartImage, MappingSource, MappingDest, HomMatrices2D,StackingOrder, TransformDomain: MosaicMatrices2D)
说明:将多个图像通过射影变换拼接。

参数简介:

Images (input):输入图像。(要将连接的图像使用concat_obj连接在一起)

MosaicImage (output):输出图像。

StartImage (input):中心输入图像的索引。(选择第几副图像作为参考,一般选择中间的图像)注:给的是序号

MappingSource (input):变换的源像的下标。(将图像按顺序排列,取前n-1项)如:[1,2,3]

MappingDest (input):变换的目标像的下标。(将图像按顺序排列,取后n-1项)如:[2,3,4]

HomMatrices2D (input):3x3个射影变换矩阵的数组。(变换矩阵通常由proj_match_points_ransac确定)

StackingOrder (input):mosaic中图像的堆叠顺序(如果给出的是“default”而不是一个整数数组,则将使用规范顺序(图像按照图像中使用的顺序)。)
TransformDomain:(input)(如果TransformDomain设置为“false”,则忽略输入图像的域,并对完整图像进行转换。)
MosaicMatrices2D (output) :(包含一组3x3的投影变换矩阵,用于描述图像中的每个图像到其在拼接中的位置的映射)

3.bundle_adjust_mosaic( : : NumImages, ReferenceImage, MappingSource, MappingDest, HomMatrices2D, Rows1, Cols1,Rows2, Cols2, NumCorrespondences,Transformation : MosaicMatrices2D, Rows, Cols, Error)
说明:调整图像拼接。

参数简介:

NumImages(input_control):拼接图像的数量

ReferenceImage(input_control):参考图像

MappingSource(input_control):图像对的索引如:[1,2,3]

MappingDest(input_control):图像对的索引如:[1,2,3]

HomMatrices2D(input_control):3×3 齐次射影变换矩阵。

Rows1(input_control):匹配成功的坐标点(通过索引Points来取)如:Rows1[Points1]

Cols1(input_control):匹配成功的坐标点(通过索引Points来取)

Rows2(input_control):匹配成功的坐标点(通过索引Points来取)

Cols2(input_control):匹配成功的坐标点(通过索引Points来取)

NumCorrespondences(input_control):匹配对应的点对数目(一个元组,各个图像对之间的匹配数)

Transformation(input_control): 要使用的转换类型(对于转换= ' projective ',使用投射转换(参见vector_to_proj_hom_mat2d);

                                                                                         对于转换= ' affine ',使用仿射变换(参见vector_to_hom_mat2d);

                                                                                         对于转换= ' similarity ',相似性变换(参见vector_to_similarity);

                                                                                          以及对于转换= ‘rigid'刚性变换(参见vector_to_ girid)。)

MosaicMatrices2D(output) :由3*3投影变换矩阵组成的数组,用于确定图像在拼接中的位置。

Rows(output) :通过束调整重构的点的行坐标。

Cols(output) :通过束调整重构的点的列坐标。

Error(output) :每个重建点的平均误差。

4.gen_bundle_adjusted_mosaic(Images : MosaicImage : HomMatrices2D, StackingOrder, TransformDomain : TransMat2D)
说明:生成束调整的拼接图像

参数简介:

Images(input) :图像组
MosaicImage(output) : 调整后的拼接图像
HomMatrices2D(input):调整后的变换矩阵
StackingOrder ( input ) :在拼接图像的堆叠顺序 一般default
TransformDomain (input):图像的定义域是否自适应,一般false
TransMat2D(out):描述将所有图像完全转换为输出图像所必需的平移的3x3投影变换矩阵

学习记录 Halcon 图片拼接相关推荐

  1. 【学习记录】图片行列切割与子图行列拼接之中央裁剪法

    写在前面 :本博客仅作记录学习之用,部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言 分割与拼接 拼接问题 分割和拼接的用途 函数实现 切割函数 拼接函数 中央 ...

  2. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  3. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  4. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  5. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  6. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  7. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  8. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

  9. java之字符串学习记录

    java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...

  10. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

最新文章

  1. 【译】在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本
  2. 电脑常用的几个快捷键
  3. SQL SERVER2000教程-第五章 处理数据 第十三节 设定数字日期格式
  4. IOS之学习笔记九(对象的初始化)
  5. Mybatis笔记——Mybatis入门
  6. JavaWeb:XML总结
  7. 使用kubeadm安装kubernetes1.12.2版本脚本
  8. 与机器人对话的语音识别解决方案
  9. ubuntu10.04 MTK开发环境
  10. OA报账规范(出差专用)
  11. 华为往事(十八)--CC08 STP:华为抢占制高点
  12. Python修改路由器WIFI账号
  13. 避坑14_此浏览器或应用可能不安全。了解详情请尝试使用其他浏览器。
  14. 【读书笔记】《中庸(国学大书院)》
  15. 基于深度指标的网络脆弱性攻击代价定量评估方法
  16. 基于OpenCV的车道偏离预警系统
  17. 有哪些小巧好用的pdf阅读器
  18. web前端课程设计——动漫网页2个网页HTML+CSS web前端开发技术 web课程设计 网页规划与设计
  19. sd和sem啥区别_SD与SEM有区别吗
  20. 将网页内容截屏的好工具

热门文章

  1. 曲苑杂坛--修改数据库服务器名称
  2. linux如何连接蓝牙音箱,蓝牙音箱在Ubuntu 16.04中没有声音
  3. 笔记本连接显示器后没有声音_笔记本外接显示器后没声音怎么回事
  4. Django学习笔记1 Web开发简介和Django安装运行
  5. 跳棋的C语言,跳棋游戏C语言程序设计(数据结构课程设计报告).doc
  6. 四位共阳极数码管显示函数_74hc573可以驱动几位共阴数码管?74hc573驱动数码管应用解析...
  7. 信息安全制度管理办法
  8. MIUI12内置软件卸载工具 MIUI系统应用 免ROOT 卸载工具
  9. 论文解读 | 百度 ERNIE: Enhanced Representation through Knowledge Integration
  10. BW数据加载后不能实时刷新到水晶易表解决方法