如何降低OpenCV中图像的分辨率?

时间:2013-06-27 12:40:41

标签: c++ image opencv

所以,我有一个来自数字扫描仪的图像,其分辨率为26百万像素。 我想将图像的分辨率降低到500万像素。

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

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

非常感谢任何帮助。 三江源

2 个答案:

答案 0 :(得分:12)

您可以使用cv2::resize()

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

此处,interpolation可以选为cv::INTER_LANCZOS4以获得最佳插值结果。

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

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

答案 1 :(得分:0)

降低图像的分辨率是损坏内容的定义。无损图像压缩不会降低图像的分辨率。据说500万像素仍然是一个非常高的分辨率,超过大多数应用程序应该要求的。例外情况可能是科学和医学应用。我只是确保您保留原件,直到您知道可以使用结果并仔细选择图像压缩方法来减少伪影。