【问题标题】:How to Reduce the Resolution of an Image in OpenCV?如何降低 OpenCV 中图像的分辨率?
【发布时间】:2013-06-27 12:40:41
【问题描述】:

所以,我有一张来自数字扫描仪的图像,它的分辨率是 26 兆像素。 我想将图像的分辨率降低到 5 兆像素。

是否可以在不损坏内容的情况下降低图像的分辨率?

如果是,如何在 OpenCV 实现中减少它?

任何帮助将不胜感激。 谢谢你

【问题讨论】:

  • 是这个意思还是别的意思?请更具体。 (stackoverflow.com/questions/8339077/…)
  • “不损坏内容”是什么意思?
  • 不,我之前不是这个意思,我已经用数字扫描仪扫描了图像。不涉及相机。我只需要降低图像的分辨率。
  • 我正在使用扫描仪进行 OCR 项目,所以我所说的“不损坏内容”是指每当我降低图像的分辨率时,它会损坏图像中的字符?
  • 你的意思是用 cv::resize 缩小图像吗?可能会丢失一些数据,这可能对您的内容有害。

标签: c++ image opencv


【解决方案1】:

您可以使用cv2::resize()

resize(src, dst, Size(), factor, factor, interpolation);

这里可以选择interpolationcv::INTER_LANCZOS4,以获得最佳插值结果。

factor 是采样率,为了从 26mp 转换为 5mp,您可能需要它为 2.28

下采样总是会引入一些信息和细节损失。

【讨论】:

  • 感谢您的回答,这正是我一直在寻找的。​​span>
  • 对于收缩,“因子”将
【解决方案2】:

降低图像的分辨率就是破坏内容的定义。无损图像压缩不会降低图像的分辨率。也就是说,5 兆像素仍然是一个非常高的分辨率,并且比大多数应用程序需要的分辨率更高。例外可能是科学和医学应用。我只会确保您保留原始图像,直到您知道可以使用结果并仔细选择图像压缩方法以减少伪影。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多