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

C++ 如何降低OpenCV中图像的分辨率?,c++,image,opencv,C++,Image,Opencv,我有一张数码扫描仪的图像,分辨率是2600万像素。 我想把图像的分辨率降低到500万像素 是否可以在不损坏内容的情况下降低图像的分辨率 如果是,如何在OpenCV实现中减少它 任何帮助都将不胜感激。 谢谢降低图像分辨率正是破坏内容的定义。无损图像压缩不会降低图像的分辨率。也就是说,500万像素仍然是一个非常高的分辨率,超过了大多数应用程序的要求。例外情况可能是科学和医学应用。我只想确保您保留原始图像,直到您知道您可以处理结果并仔细选择图像压缩方法以减少伪影。您可以使用 这里,插值可以选择为cv:

我有一张数码扫描仪的图像,分辨率是2600万像素。 我想把图像的分辨率降低到500万像素

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

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

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

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

您可以使用

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

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


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

是指这一点还是其他什么?请说得更具体些。()你说的“不损坏内容”是什么意思?不,我以前不是这个意思,我已经用数字扫描仪扫描了一幅图像。没有摄像机。我只需要降低图像的分辨率。我正在使用扫描仪进行OCR项目,所以我所说的“不损坏内容”是指每当我降低图像的分辨率时,它会损坏图像中的字符吗?你的意思是用cv::resize缩小图像吗?会有一些数据丢失,可能对你的内容有害。谢谢你的回答,这就是我一直在寻找的。对于收缩,“因素”将是
resize(src, dst, Size(), factor, factor, interpolation);