点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
研究好玩又有用的技术第 008 期
在学习中发现快乐,在应用找到价值。这是我第八期分享图像技术应用的文章。
前七期欢迎阅读和分享:
第一期《
第二期《》
第三期《》
第四期《》
第六期《》
第七期《》
概述
作者:Thalles Silva 编译:AI算法与图像处理
图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。
在这篇文章中,我们将讨论如何使用Python和OpenCV执行图像拼接。鉴于一对共享一些共同区域的图像,我们的目标是“缝合”它们并创建全景图像场景。
在整篇文章中,我们将介绍一些最着名的计算机视觉技术。这些包括:
关键点检测
局部不变描述符(SIFT,SURF等)
特征匹配
使用RANSAC进行的旋转估计(Homography estimation)
透视畸变(Perspective warping)
我们探索了许多特征提取算子,如SIFT,SURF,BRISK和ORB。你可以使用这款Colab笔记本,甚至可以用你的照片试试。[这里我已经调试好源码并上传到github上面]
特征检测和提取
给定一对像上面那样的图像,我们想要把它们拼接起来创建一个全景场景。值得注意的是,两个图像都需要共享一些共同的区域。
此外,即使图片在以下一个或多个方面存在差异,我们的解决方案也必须强大:
Scaling
Angle
Spacial position
Capturing devices
朝这个方向迈出的第一步是提取一些感兴趣的关键点和特征。但是,这些功能需要具有一些特殊属性。
我们首先考虑一个简单的解决方案。
关键点检测
一开始可能使用简单些的方法,诸如使用Harris Corners之类的算法提取关键点。然后,我们可以尝试根据欧几里德距离之类的相似度量来匹配相应的关键点。我们知道,角点(corner)有一个很好的属性:它们对旋转是不变的。 这意味着,一旦我们检测到一个角点