多语言展示
当前在线:1481今日阅读:27今日分享:41

检测同一个物体在不同的图片中的对应点

给出如下的图片,是某个在建小区不同的视角下的外景图(来自百度的3D地图)。本文的目标是,使用Mathematica来检测图中物体的对应点。
工具/原料
1

电脑

2

Mathematica11+

方法/步骤
1

假设两幅图片分别记为a和b,检测图像的对应点:{m,n}=ImageCorrespondingPoints[a,b]运行结果是,图片对应点在两幅图中的坐标。

2

在第一幅图中,标注出这些点。HighlightImage[a, {Green, Point[m]}]

3

在第二幅图中,标注出对应点。HighlightImage[b, {Red, Point[n]}]

4

为所有的对应点,排上序号。代码如下图。

5

两幅图的对应点都加上了序号,效果如下。比较一下,能够发现,有一些对应点确实是对应的关系,但另一些却不是,比如5和11。

方法/步骤2
1

这一次,选用图片a,并把a旋转60°,得到b。b = Rasterize[Rotate[a, Pi/3]];

2

寻找这两幅图的对应点。仔细观察,是不是所有的对应点都是真的对应点。

注意事项

对应点是否对应,很大程度上取决于图片的清晰度。本文的图片截取自百度的3D地图。

推荐信息