【问题标题】:How to re size a too big image into small by keeping original values如何通过保持原始值将太大的图像重新调整为小图像
【发布时间】:2014-04-23 04:20:57
【问题描述】:

我有一个尺寸为 的灰度图像。当我尝试打开此图像时,我收到警告说它太大了。我已尝试使用 imresize() 函数使其尺寸 small。当我绘制原始图像和重新调整大小的图像时,重新调整大小后强度会降低。我想在不改变其像素值的情况下重新调整原始图像的大小。有什么解决办法吗?

【问题讨论】:

  • 什么软件给你这个警告?这不是现代标准的大形象。
  • “重新调整大小后强度降低”是什么意思?

标签: matlab image-processing


【解决方案1】:

如果您想将最终图像保留为uint8,我认为您需要先使用im2uint8uint16 图像转换为uint8 图像 -

uint8_image = im2uint8(uint16_image);

那么你可以在uint8_image上申请imresize

但是,如果您不希望最终图像是uint8 类型,您可以直接使用imresize,它会保留数据类型,即调整大小的图像将是uint16 类型。

【讨论】:

    【解决方案2】:

    阅读docs 并使用最近邻法。也就是说,

    resized = imresize(original, scale, 'nearest')
    

    这不会使用插值。缺点当然是边缘可能是锯齿状的。

    【讨论】:

      【解决方案3】:

      听起来您的 16 位图像使用线性代码,而生成的 8 位图像需要进行伽马校正。如果是这种情况,您可以使用 imadjust 和 1/2.2 的 gamma 参数来生成更亮的图像。

      【讨论】:

        【解决方案4】:

        当您使用imshow 显示它时是否收到警告?它是否说“图像变大以适应屏幕,调整为 xx%”之类的内容?如果是这样,那么您可以简单地忽略该警告。否则,您可以设置imshow'InitialMagnification' 参数来调整图形大小,但不能调整图像本身。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-22
          • 2012-06-22
          • 1970-01-01
          • 1970-01-01
          • 2011-01-19
          • 1970-01-01
          • 2015-02-24
          • 2015-06-28
          相关资源
          最近更新 更多