我想要进行图像质量检查。也许计算出那种质量的一些指标。
例如,假设用户A上传了http://www.hyperconectados.com/wp-content/uploads/2014/03/Selfie.jpg
之类的内容用户B上传类似http://www.privatewifi.com/wp-content/uploads/2014/02/selfie.jpg
的内容 很明显,B照片很专业,质量很好。还有另一件事,使用图像大小和重量(?)并不好,因为B图像可以调整大小,照片或其他东西(丢失一些图像数据)。有没有办法检测出这种差异? :)有什么想法吗?
答案 0 :(得分:3)
我仍在考虑进一步的指标,但目前......
IPTC简介和/或版权
我想说的是,如果没有IPTC资料和版权声明,大多数专业摄影师都不会让图像出门。
您可以使用ImageMagick找到:
identify -verbose image.jpg | grep -i profile
并且您的第二张图片出现了
Profile-8bim: 104 bytes
Profile-iptc: 92 bytes
您实际上可以像这样阅读个人资料:
convert b.jpg 8BIMTEXT:-
8BIM#1028="IPTC"
2#103#Original Transmission Reference="53616c7465645f5fb085443d8e4c5898afc929fa83c3cc27d7bf6da5d5f63efdf47888b1a19ac93e"
2#0="�"
或
convert b.jpg IPTCTEXT:-
2#103#Original Transmission Reference="53616c7465645f5fb085443d8e4c5898afc929fa83c3cc27d7bf6da5d5f63efdf47888b1a19ac93e"
2#0="�"
分辨率(dpi)
另一种判别可能是解决方案。大多数手机,业余爱好者和基于网络的图像的分辨率为72dpi或96dpi。大多数专业摄影师倾向于支持300dpi的高质量打印,所以我可能会达到150dpi左右的阈值。你可以得到这样的分辨率:
identify -verbose image.jpg | grep -i resolution
或更快,更简洁
identify -format %x image.jpg
300
我注意到你的第一张图片有72dpi,第二张图片有300dpi。
增强范围
我想到的另一个想法是,如果您尝试以数字方式增强图像,然后看到增强图像与原始图像之间的差异,并尝试从中推断出某些内容,会发生什么。据推测,专业编辑的图像不应该在它应该已经“好”的基础上易于增强。所以,假设我们选择ImageMagick的-enhance
选项,并增强您的两个图像,然后查看原始图像和增强图像之间的差异。我将切换到无损PNG
格式以避免JPEG
量化效果。
# Make PNG
convert a.jpg a.png
# Enhance "a.png" and save as "ae.png"
convert a.png -enhance ae.png
# Compare "a.png" with "ae.png"
compare -metric rmse a.png ae.png -format "%[distortion]" resa.png
360.479 (0.00550055)0.00550055
现在为第二个专业形象做同样的程序:
# Make a comparably sized PNG
convert b.jpg -resize 1200x1200 b.png
convert b.png -enhance be.png
compare -metric rmse b.png be.png -format "%[distortion]" resb.png
421.08 (0.00642527)0.00642527
我还在考虑这个......
答案 1 :(得分:0)