拼接显微镜图像的微芯片

时间:2012-01-27 14:55:01

标签: opencv surf image-stitching

所以,我正在尝试缝合由微芯片显微镜拍摄的图像,但很难将所有功能对齐。我已经在两个相邻图像之间有50%的重叠,但即便如此,它并不总是很合适。

我正在使用SURF和OpenCV来提取关键点并找到单应矩阵。但是,它仍然远远不是一个可以接受的结果。

我的目标是能够完美拼接2x2图像,所以这样,我可以递归地重复这个过程,直到我得到最终图像。

你有什么建议吗?一个很好的算法来解决这个问题。或者也许是一种转换图像的方法,以便能够从中提取更好的关键点。使用阈值(较小的一个获得更多关键点,或更大的关键点?)。

现在,我的方法是首先缝合两个2x1图像,然后将这两个图像拼接在一起。它与我们想要的很接近,但仍然不能接受。此外,问题可能是图像曾经是“源”(而第二个图像是通过矩阵与一个图像重叠而变换)可能不会有点错位,或者该图像上的小角度会影响整个结果

感谢任何帮助或建议。特别是允许使用OpenCV和SURF的任何解决方案(即使我不完全反对其他库......只是大部分项目都是用它开发的。)

谢谢!

2 个答案:

答案 0 :(得分:5)

我发现在图片注册开发过程中使用TurboReg是一个有用的比较工具。它是一个免费的ImageJ插件,有许多不同的拟合类型。

您是否看过新的OpenCV拼接样本:stitching.cppstitching_detailed.cpp

编辑:我忘了这是最前沿的OpenCV,因为我在家里使用主干:)要获得这些新样本的访问权限,你需要从SVN查看OpenCV中继像这样:

svn co https://code.ros.org/svn/opencv/trunk/opencv opencv-trunk

不幸的是,你需要重新编译它,但你应该能够使用新的拼接代码:)如果你之前没有从源代码构建OpenCV,here是一个很好的小教程,可以帮到你开始。我将提到OpenCV有比本教程中提到的更多可以启用/禁用的选项,因此您可能希望使用cmake-gui来查看所有选项。您可以使用此命令来获取它:

> sudo apt-get install cmake-qt-gui

另外,如果你更关心质量,你不介意性能下降;您可以考虑使用Lucas-Kanade method进行图像注册。 Here是一个讲座,here是一篇关于该主题的论文,可能对您有所帮助。

答案 1 :(得分:0)

Fiji's stitching plugin通过2D镶嵌处理这种对齐错误传播的情况。我们在日常使用中用于显微镜缝合,我必须说它是完美的。