在 C++ 中,或通过 Linux shell 脚本,我如何在没有任何插值的情况下将图像放大 2 次方(例如,将 40x60 图像放大到 80x120),因此它会呈现出清晰的像素化外观,如下图所示。每当我使用 Magick++'sImage
或 Qt's执行此操作时QImage
,它都会对生成的图像进行平滑处理。
PS:已经有一个关于C# 的问题。
在 C++ 中,或通过 Linux shell 脚本,我如何在没有任何插值的情况下将图像放大 2 次方(例如,将 40x60 图像放大到 80x120),因此它会呈现出清晰的像素化外观,如下图所示。每当我使用 Magick++'sImage
或 Qt's执行此操作时QImage
,它都会对生成的图像进行平滑处理。
PS:已经有一个关于C# 的问题。
您可以使用 OpenCVresize()
来执行此操作。您应该使用 INTER_NEAREST 插值。
由于您安装了 ImageMagick,因此 shell 脚本友好选项将是mogrify -scale 200% image.png
这在缩小时使用线性重采样,在放大时使用最近邻。
如果首选 C++,则该scale
方法的Image
工作方式相同。
在 Qt 中,如果您使用转换方法的默认参数(scaled
即.QImage
Qt::FastTransformation