【问题标题】:How can I find the difference between two images of different scales and sizes?如何找到两个不同比例和大小的图像之间的差异?
【发布时间】:2019-02-22 19:09:12
【问题描述】:

我有两个图像 image1image2 表示为 2D numpy 数组。我想找到两者之间的差异图像,我认为它只是diff = image1-image2。但是,问题在于两张图片的大小不同,像素尺度也不同。

image1 具有形状 (600, 600) 和像素比例 = 2.757/5 弧秒。 image2 具有形状 (641, 641) 和像素比例 = 0.275 弧秒。它们都经过了归一化处理,使得二维数组中像素的总和为 1。

获取逐像素差异(差异图像)是没有意义的,除非它们都具有相同的像素比例,并且为了获得差异,它们必须具有相同的形状。我对如何做到这一点感到困惑,因为如果我对其中一个进行过采样或欠采样以达到相同的像素比例,那么形状仍然会有所不同。这可能吗?

【问题讨论】:

  • ndimage.zoom 可以使图像具有相同的形状。如果像素比例很重要,则无需进行任何计算:只需说图像不同,因为其中一张显示的区域比另一张大。
  • 我认为您应该考虑每张图像所跨越的实际距离。然后将较小的(以实际距离单位)图像与较大图像的像素比例进行比较,对齐图像(您必须找到它们之间的对应关系以进行比较......它是主要点吗?),然后您将较大的图像裁剪到较小图像的边界。然后,你可以比较

标签: python python-3.x image numpy pixel


【解决方案1】:

我将通过将image2 乘以image1 的像素比例和image1 乘以image2 的像素比例来确保两个图像具有相同的像素比例。然后我要么zoom(见scipy's zoom example hereimage1要么缩小image2,这样两个图像在取差异之前就具有相同的大小。

【讨论】:

  • “将image2乘以像素比例”是什么意思? pixel_scale1 * image2 没有任何几何意义。
  • 我在这里所说的乘法是标量乘法,我可以将其几何解释为拉伸(放大)收缩(缩小) 图像。请查看维基百科页面以了解标量矩阵乘法here。我认为您需要牢记我们想要实现的目标。
  • 啊,我明白了。你不知道你在说什么。和我想的一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多