对于图像上传工具,我想自动检测图像的(主观)质量,从而产生质量评级.
我有以下想法,以启发式方式实现这一点:
显然将分辨率纳入评级.
将其压缩为JPG(75%),将其解压缩并比较jpg大小与解压缩大小以获得比率.图像越模糊,比率越高.
显然,如果对大图像进行评级,我的方法会消耗很多周期和内存,尽管这可以在我的场景中实现(胖服务器,上传的内容不多),而且我总是可以围绕更昂贵的步骤建立"短路"如果图像超过一定的分辨率.
还有其他我可以尝试的,还是有办法更有效地做到这一点?
Assesing的图像(同样适用于声音或视频)的质量是不是一件容易的事,并且有许多出版物标本兼治.
很大程度上取决于图像的性质 - 不同的标准集适用于人工创建的图像(即图表)或自然图像(即照片).必须考虑微妙的效果 - 如彩色遮蔽,亮度遮蔽,对比度感知.对于某些图像,给定的压缩比是完全足够的,而对于其他图像,它将导致显着的质量损失.
这是一本免费出版的出版物,简要介绍了图像质量评估的主题.
你提到的方法 - 压缩图像并将结果与原始图像进行比较远非完美.您计划使用的指标是什么?MSE?每块MSE?当然,实现起来并不困难,但结果难以解释(考虑使用高频成分且没有高频成分的图像).
如果你想深入研究图像质量评估,那么机器学习社区也会做很多研究.
您可以尝试查看图像的EXIF标签(使用像exiftool这样的东西),你得到的东西会有很大差异.例如,在我的单反相机上,您甚至可以在拍摄图像时获得哪些焦点处于活动状态.压缩质量也可能有所不同.
要检查的另一件事是图像直方图 - 注意偏向左侧的图像,这表明曝光不足或大量饱和像素.
对于图像模糊,您可以查看傅立叶变换的高频分量,这可能是访问与JPG压缩相关的参数.
这是一个棘手的领域,因为你可能能够实施的大多数"规则"可能会因为艺术效果而被打破.
我想拍下"明显合并分辨率"的想法.决议告诉你什么.我可以将图像缩放2倍,使像素数增加四倍.这不会增加任何信息,也不会提高质量.
我不确定"压缩到JPG"的想法.JPG是一种面向照片的算法.并非所有图像都是照片.此外,蓝天压得很好.均匀灰色甚至更好.您认为确切的云类型决定图像质量吗?
出于类似的原因,锐度是一个坏主意.景深与图像质量无关.在黑色背景下拍摄的项目将有很多像素,故意强度相当低.同样,这并不表示曝光不足,因此直方图本身也不是一个好的质量指标.