如何检测图像的缩放系数

时间:2013-01-14 19:53:57

标签: java image image-processing imagemagick

我在这里阅读了有关此主题的相关问题:How to detect subjective image quality

我想检测用户上传的图像是否可以以高百分比(例如,500%)放大,并且仍然是或良好的图像质量。我知道“良好的图像质量”是主观的,但就我的目的而言,我会说它意味着“图像是否像素化?”。我正试图找到如何做到这一点的方法?

  • 我应该计算上传图片的大小吗?尺寸越大,放大幅度越大?
  • 我应该计算图像的总像素数吗?
  • 我应该阅读上传图片的元标签吗?
  • 多件事的组合?

是否有解决方案/库可以确定图像的bad pixelation

1 个答案:

答案 0 :(得分:4)

使用水平和垂直像素数。

只要图像的像素数多于您显示的像素数,就可以进行缩放。一旦有比图像像素更多的显示像素,就必须插入像素。插值越高,图像越模糊。

假设您有4000 x 3000像素的照片,并且显示的是640 x 480像素。

您可以水平放大至625%(4000/640)和垂直放大625%(3000/480)。较小的缩放数字为625%。舍入到均匀缩放数,此图片可以放大到600%而不会出现像素化。

现在,如果你愿意插入像素,你可以放大甚至高于600%。你能放大多高?这取决于你认为可接受的插值。

我的猜测会高出25%。对于此示例图片,您可以在图片过于模糊之前达到800%。

如果您想要安全起见,请将其保持在计算出的缩放尺寸以下。如果没有,请尽可能高,让用户确定有多高。