【问题标题】:Image Pyramids - Dealing with Arbitrary Dimensions图像金字塔 - 处理任意维度
【发布时间】:2014-08-01 15:34:41
【问题描述】:

查看图像金字塔教程,我看到以下注释:

请注意,输入图像可以除以两倍(在两个维度上),这一点很重要。否则会显示错误。

我想知道,如何为任意图像大小构建图像金字塔并保持“复制”准确(最多舍入错误)。

采用 101 x 101 的图像尺寸,在使用 1:2:101 的第一个“下采样”步骤之后,生成的图像尺寸为 51 x 51。
然而在另一次迭代之后,生成了 26 x 26 的图像,那么我们如何处理奇数和偶数尺寸。

我很乐意使用 MATLAB 代码处理任何大小的“上采样”/“下采样”过程。

【问题讨论】:

  • @rayryeng,我追求那些“一些工作”的东西。我的想法是在每个维度上将像素复制到 2 的下一个幂,但这对于大图像来说是“错误的”。

标签: matlab image-processing filter


【解决方案1】:

我见过一些技术,他们将原始图像的尺寸调整为均匀,然后对图像进行二次采样。不幸的是,正如您已经看到的那样,这种奇怪而偶数的东西是不可避免的,因此在将其传递给图像分解例程之前,您必须自己做一些工作。这样在构建图像金字塔时就没有歧义。完成后,您可以裁剪掉不需要的原始图像部分。另一种技术是消除行和列以确保它们都是均匀的。

因此,您所要做的就是扩展图像的尺寸以确保每个尺寸都是均匀的。换句话说,你会做这样的事情:

im = imread('...'); %// Place image here
rows = size(im,1);
cols = size(im,2);
imResize = imresize(im, [rows + mod(rows,2), cols + mod(cols,2)], 'bilinear');

这基本上读取图像和尺寸(行和列)。之后,它会调整图像的大小以确保尺寸(行和列)是均匀的。这是通过使用mod 检查值是否为奇数来完成的。如果任何维度是奇数,则输出将为1,您只需将其添加为输出维度。

此外,如果最后一行或最后一列也很奇怪,您可以通过以下方式简单地裁剪掉它们:

im = imread('...'); % // Place image here
rows = size(im,1);
cols = size(im,2);
imResize = im(1:rows-mod(rows,2), 1:cols-mod(cols,2), :); 

这里的mod 以相同的方式用于裁剪不需要的内容。如果任何维度是奇数,只需减去 1,以便我们在需要时消除最后一行或最后一列。


正如 CST-Link 已经指出的那样,从已经具有奇数尺寸的图像进行上采样将无法重建原始图像尺寸,因为如果它们已经丢失,那么为了恢复那些原始行和列的精度已经丢失。

【讨论】:

    【解决方案2】:

    对于下采样,更好的方法是从图像中删除最后一行和列,因此 101×101 会生成 50×50。虽然这可能是一个品味问题,但我认为忽略真实信息比引入虚假信息要好。

    对于上采样,恐怕你问的是不可能的。假设你有一个 200×200 像素的图像;你能从它的大小看出是从 400×400 像素图像还是从 401×401 像素图像下采样的?两者都会给出相同的结果。

    【讨论】:

    • 那么,如何才能获得最佳技术以确保重建尽可能接近原始图像?
    • @Drazick 请定义“最佳”。
    • 即重建将尽可能接近输入。
    • @Drazick 抱歉,但您建议的标准并不适用于所有情况。我的答案的最后一部分暗示了数学上的不可能性(除非图片的原始大小由 2 的幂组成)。这意味着,您必须对上采样图片的大小做出的决定在数学上并不正确,而是在启发式上“正确”。这意味着,在许多情况下,您可以尝试不同的策略使放大的图片与原始图片相比看起来更好,但您永远不会知道它是否适用于您从未尝试过的全新图片。因此,不是“最好的”。
    • 我认为这不准确。如果你通过抽样数学去,那么你希望图像是 2 + 1 的幂。虽然你可以做一些技巧来处理 2 的幂。现在,认为你有一些知道如何处理偶数的东西 -> 你可以完美地重建至少一个“步骤”。现在,您知道如何为 Odd 迈出一步。总结一下,您只需要知道每个级别的标志是“奇数”还是“偶数”。可以,我只是觉得有人有更优雅的方式。
    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 2016-08-20
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多