【问题标题】:Overlay images in MATLAB using predefined points使用预定义点在 MATLAB 中叠加图像
【发布时间】:2013-09-04 12:28:59
【问题描述】:

基本上我想要做的是使用每个图像上的预定义点覆盖两个图像。

图像可能有两种不同的尺寸或不同的缩放比例,目前还不确定。但图像是相同的。所以我想做的是说图像一上的这个点与图像二上的这个点相同。并对多个点执行此操作,然后让 matlab 调整大小或变换以使所有这些点对齐,以便两个图像可以是覆盖。让我感到困惑的是让 matlab 自动调整图像,以便它们可以“适合”在一起。

我不知道从哪里开始,只是希望大致了解我可以做什么。

以防其他人知道如何做到这一点,我会提出我还需要做的事情。两幅图像重叠后,一幅为区域图,另一幅为真实图像。我需要matlab做的是计算地图每个区域中真实图像的点数。

感谢您的帮助。

【问题讨论】:

  • 我猜他是在谈论图像旋转,但使用了俚语 FLOP。它不会根据 IP 退出。
  • 点或像素。您的问题具有误导性,并且部分不清楚。您能否对其进行编辑或改写,以便我们向您提出一些好的解决方案。
  • 这是一个 matlab 的不同图像对齐技术的文档:mathworks.com/help/images/registering-an-image.html
  • 我稍微修改了一下,如果有帮助请告诉我。

标签: image matlab


【解决方案1】:

您正在尝试执行的操作称为图像配准,这是一项非常常见的图像处理任务。您不需要编写太多代码,因为 matlab 已经为此内置了函数。您使用 cp2tform 创建从第一张图像到第二张图像的变换,然后可以使用 imtransform 函数将变换应用于第一张图像。假设控制点的 x,y 坐标位于 m x 2 矩阵中,则代码看起来像这样,对于 image1,称为 points1,对于 image2,称为 points2。

  tform= cp2tform(points1, points2 , 'similarity');
  imtransform(image1, tform);

【讨论】:

  • 这很好用,谢谢。不过要补充一下,因为我知道我想做什么。因此,要设置这些特定点,您可以使用 cpselect 来显示两个图像,让您设置点。然后,您可以将这些点导出到两个数组中,然后将它们放入 cp2tform 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
相关资源
最近更新 更多