所以,我有一张来自数字扫描仪的图像,它的分辨率是 26 兆像素。我想将图像的分辨率降低到 5 兆像素。
是否可以在不损坏内容的情况下降低图像的分辨率?
如果是,如何在 OpenCV 实现中减少它?
任何帮助将不胜感激。谢谢
您可以使用cv2::resize()
resize(src, dst, Size(), factor, factor, interpolation);
在这里,interpolation
可以选择为cv::INTER_LANCZOS4
以获得最佳插值结果。
factor
是采样率,为了从 26mp 转换为 5mp,您可能需要它为 2.28
下采样总是会引入一些信息和细节损失。
降低图像的分辨率是破坏内容的定义。无损图像压缩不会降低图像的分辨率。也就是说,5 兆像素仍然是一个非常高的分辨率,并且超过了大多数应用程序应该需要的分辨率。例外可能是科学和医学应用。我只会确保您保留原始图像,直到您知道可以使用结果并仔细选择图像压缩方法以减少伪影。