Opencv 缝合微芯片的显微镜图像

Opencv 缝合微芯片的显微镜图像,opencv,surf,image-stitching,Opencv,Surf,Image Stitching,所以,我试着用显微镜缝合芯片上的图像,但是很难将所有的特征对齐。我已经在两个相邻的图像之间有50%的重叠,但即使这样,也不总是很合适 我使用SURF和OpenCV来提取关键点并找到同形矩阵。但这仍然远远不是一个可以接受的结果 我的目标是能够完美地缝合2x2图像,这样,我就可以递归地重复这个过程,直到得到最终的图像 你有什么建议吗?一个很好的算法来解决这个问题。或者是一种变换图像的方法,以便能够从中提取更好的关键点。使用阈值(较小的阈值可以获得更多关键点,还是较大的阈值?) 现在,我的方法是先缝合

所以,我试着用显微镜缝合芯片上的图像,但是很难将所有的特征对齐。我已经在两个相邻的图像之间有50%的重叠,但即使这样,也不总是很合适

我使用SURF和OpenCV来提取关键点并找到同形矩阵。但这仍然远远不是一个可以接受的结果

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

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

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

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

谢谢

我发现在图像配准开发过程中使用是一种有用的比较工具。这是一个免费的插件,有许多不同的配件类型

您看过新的OpenCV缝合示例了吗:和

编辑:我忘了这是最先进的OpenCV,因为我在家里使用主干:)要访问这些新样本,您需要像这样从SVN检查OpenCV主干:

svn co https://code.ros.org/svn/opencv/trunk/opencv opencv-trunk
不幸的是,您需要重新编译它,但是您应该能够使用新的缝合代码:)如果您以前没有从源代码构建OpenCV,这是一个很好的入门教程。我要提到的是,OpenCV的启用/禁用选项比教程中提到的多得多,因此您可能希望使用
cmakegui
查看所有选项。您可以使用以下命令获取它:

> sudo apt-get install cmake-qt-gui

另外,如果你更关心质量,并且不介意性能变慢;您可以考虑使用for图像注册。这是一个讲座,也是一篇关于这个主题的论文,可能会对您有所帮助。

使用二维马赛克处理对齐错误传播的这种情况。我们在日常使用中使用它进行显微缝合,我必须说它非常完美。

缝合\u detail.cpp看起来非常有趣。。。问题是我不能编译它。你知道怎么做吗?我不知道在哪里可以找到“opencv2/stitching/”中的文件。。。我在Ubuntu上,无法判断是否丢失了任何软件包,也无法在任何地方找到任何关于该软件包的清晰信息!这有点复杂,但是谢谢你的回答。。。现在,我正在尝试编译源代码以使用缝合库。。。只是希望它能起作用!应该很好用。只要确保你
能够获得教程中提到的所有必要的依赖项。至于缝合示例是否满足你的需要,我想时间会告诉你:)缝合是一个很难解决的问题,我相信你会发现:在OpenCV/Trunk中安装缝合部分的简单技巧?这就像是唯一一个没有正确编译的库。所有其他的,比如calib3d,最终创建了一个名为opencv_calib3d的库。。。但是没有什么可以缝合的,当我试图编译时,有很多链接错误!(真的厌倦了做那件事……需要它来工作:()我的工作中有一些人用它来缝合,但他们并不总是对结果感到满意!你可能需要处理阈值和其他参数。我们在我们的商业显微镜软件中使用它,它真的很好。你知道瓷砖之间的位移吗?如果是的,这是一个完美的例子。实际上,我编写了一个程序m缝合得非常完美(允许使用参数)!