如何以参考图像为指导进行图像拼接?

时间:2019-08-10 14:18:45

标签: python-3.x matlab image-processing imagej image-stitching

使用参考图像进行图像拼接。

我有多个对象(骨骼)的图像,这些图像是对象的不同部分,如3x3矩阵。我想将它们缝合在一起,但是问题是它们没有任何共同特征,因为使用锯将对象切成这些部分。我所拥有的是剪切之前的对象图像,并希望将其用作将各部分图像缝合在一起的指导。

我尝试使用斐济imagej,并在网上搜索了替代方法。 imageJ仅在具有要使用的图像之间的共同特征的情况下才能执行此工作。有人可以指向可以执行此操作的python或matlab中的某些代码,或可以提供帮助的任何软件。

'[参考图像] [1] section (11) section (12) section (13) section (21) section (23) section (31)'

'[1]:https://i.stack.imgur.com/wQr09.jpg 由于SO的政策,我无法添加8个以上的链接。剩下两个,我会尽快添加。并且“部分(22)”,即3X3矩阵中的中心位置为空。

1 个答案:

答案 0 :(得分:0)

像这样的图像处理需求的解决方案千差万别,这取决于您是否需要一次使用脚本几次,将要使用数周的软件工具或可能成为实验室自动化软件的东西。

这似乎更多是图像匹配问题,而不是图像拼接问题。通过图像匹配,我的意思是您需要找出子图像,例如(第2行,第1列的骨骼部分)如何与参考骨骼图像中标记为“ 4”的左中间部分相匹配。

基本过程:

  1. 将参考图像加载为2D数组(首先转换为灰度)
  2. 加载您的第一块骨骼的示例图像。
  3. 使用诸如SIFT之类的算法来确定位置,方向和比例,以将骨骼切片图像拟合到参考图像上。
  4. 将拟合标准(x,y,旋转,缩放)应用于骨骼截面图像,对其进行转换,然后粘贴到与参考图像大小相同的黑色图像中。
  5. 继续上述过程以适合所有小节。
  6. (可选)在所有骨骼小节都安装到位后,执行其他图像处理操作以改善贴合性,填充间隙等。

从样本图像中可以看出,参考图像和骨骼切片图像区域使用的是不同的光照,有时骨骼的平坦部分相对于相机的光轴稍微倾斜,等等,所有这些都使图像匹配更加困难。

SIFT是一种可以在此处提供帮助的算法。请注意,“尺度不变”是算法名称的一部分。

https://en.wikipedia.org/wiki/Scale-invariant_feature_transform

鉴于所有这些,您的参考图像和骨骼切片图像似乎是在非常不同的情况下拍摄的,这使得解决问题的难度超出了需要。如果您可以控制捕获图像的条件,那么总体而言,您将获得更轻松的时间。

  • 使用相同的照相机,相同的照明,大致相同的距离捕获所有图像
  • 对于照明,请使用高频散射荧光之类的东西
  • 每个图像都使用相同的背景(例如,哑光黑)

使此图像与健壮的过程相匹配意味着要注意物理设置以及创建图像处理算法。

如果您需要传统图像处理技术的良好参考,请查找Gonzalez和Woods撰写的Digital Image Processing的副本。花费一些时间与在线学习图像处理相比,花些时间能给您更好的答案。

对于要解决现实世界中有关实现简单图像处理算法问题的实际图像处理,请寻找Davies的Machine Vision。

我强烈建议您不要研究机器学习,也不要尝试在更高级的图像处理教科书中找到答案,直到您遇到使用传统方法的障碍。