给出如下的图片,是某个在建小区不同的视角下的外景图(来自百度的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地图。
上一篇:去眼袋手术前后对比图
下一篇:如何鉴别桂圆与疯人果