【问题标题】:confusion regarding "imresize" in MATLAB?关于 MATLAB 中的“imresize”的困惑?
【发布时间】:2020-08-11 07:40:19
【问题描述】:

我在下面的链接中读到“imresize”命令可用于更改图像的分辨率?这是真的吗?因为显然关键字“imresize”暗示改变大小?

这个大小是指存储(Kbs 大小)还是显示大小?

https://www.electronicsforu.com/electronics-projects/software-projects-ideas/image-processing-using-matlab-basic-operations-part-2-4

【问题讨论】:

  • 事情是相关的。但是,我不能完全理解你在问什么。请问可以改写吗?我建议使用语法。出于同样的原因,我不会编辑。
  • 为什么会是假的?此外,文档非常清楚它的作用,甚至还有示例
  • “因为显然关键字暗示改变大小?” -> 我无法理解其中的含义。甚至将“因为”改为“为什么”。
  • imresize 可以降低图像的分辨率,如果你“缩小”。但是你不能增加图像的分辨率,只能增加采样密度(这也会增加尺寸)。分辨率与您在图像中可以看到的最小细节有关。通过插值增加尺寸不会增加图像的细节,因此分辨率保持不变。
  • @CrisLuengo 采样密度? DPI?

标签: matlab image-processing computer-vision


【解决方案1】:

我会谨慎地说imresize 可以更改分辨率。这取决于您如何定义分辨率,但我定义图像分辨率的方式是分辨率是区分图像中两个相邻精细对象的能力。这可以通过例如计算在图像中拍摄的非常细的线或点的轮廓的 FWHM 来确定。 imresize 改变了图像的像素数和像素密度,但是如果它们在原始图像中无法区分,它实际上可以将它们分开吗?虽然您可以使用imresize锐化图像,但我认为您无法使用它来提高图像的分辨率。假设我有一张用高分辨率相机拍摄的鸟的清晰“高分辨率”图像,如下所示:

这张图片有 400 x 400 像素。因此,如果每个像素有 3 个字节,则此图像的大小为 3x400x400 字节(468.75 KB)。现在我通过im_downsampled = imresize(im, 0.1) 对图像进行下采样,这样生成的图像就会有 40 x 40 像素(图像大小为 40x40x3 字节或 ~4.7 KB),就像这样

生成的图像模糊且尺寸已减小。现在我可以通过im_upsampled = imresize(im_downsampled, 10) 将图像恢复到原来的分辨率吗?好吧,让我们看看:

正如您所见,虽然图像看起来更平滑,但精细结构无法恢复。生成的图像im_upsampled 具有与原始图像(400x400x3 字节)相同的大小,但是分辨率已经丢失。我希望我提到的文件大小能澄清关于图像 KB 大小的混淆。

【讨论】:

  • 很好的解释,你的意思是,我们只能使用 imresize 降低分辨率,而不能使用 imresize 来提高分辨率?
  • 正确。您只能将像素元素增加imresize 而不是空间分辨率。
  • 那么提高图像分辨率的命令是什么?
  • 您可以对图像进行上采样并应用滤镜以使图像看起来更清晰,但我不知道有任何方法可以实际提高图像分辨率。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 2019-05-17
  • 2020-03-06
  • 2016-03-16
  • 2013-07-27
  • 1970-01-01
  • 2012-09-20
相关资源
最近更新 更多