Web 确定图像文件是照片还是图形?
我正在进行一项我认为可能有点像实验的工作…… 提出(或发现,因为它可能已经存在)一种方法来确定给定的图像文件(无论其格式如何)是照片还是图形 “Photo”表示风景、人物等。V.S“Graphic”表示图标、插图、图表、用户界面截图等 在过去的一周里,我提出了一个很好的PHP/ImageMagick脚本,它从图像文件中提取统计数据,并很好地将修复应用于白平衡、色调、振动、锐度、阴影/高光 现在我想更进一步:自动检测照片内容,然后应用上述处理 到目前为止,有一种方法在某种程度上一直有效,即确定图像是否包含EXIF数据,但这只适用于JPEG。当然,这并不是万无一失的 是否存在通过ImageMagick、GD或其他方式检测“照片”与“图形”的已知方法 如果需要,我可以在我们的web服务器上安装/运行ImageMagick和GD以外的应用程序Web 确定图像文件是照片还是图形?,web,imagemagick,gd,photo,graphic,Web,Imagemagick,Gd,Photo,Graphic,我正在进行一项我认为可能有点像实验的工作…… 提出(或发现,因为它可能已经存在)一种方法来确定给定的图像文件(无论其格式如何)是照片还是图形 “Photo”表示风景、人物等。V.S“Graphic”表示图标、插图、图表、用户界面截图等 在过去的一周里,我提出了一个很好的PHP/ImageMagick脚本,它从图像文件中提取统计数据,并很好地将修复应用于白平衡、色调、振动、锐度、阴影/高光 现在我想更进一步:自动检测照片内容,然后应用上述处理 到目前为止,有一种方法在某种程度上一直有效,即确定图像
谢谢 照片中往往有大量不同颜色的照片(千张、十分之一张和百张)。其他图形倾向于使用有限数量的独特颜色(几十种到几百种) 因此,ImageMagick命令可能有助于筛选大量文件:
identify -format '%k\n' file
identify -format '%f : %k\n' file1 file2 file3 file4
特殊的%k
IMidentification
percent escape宏导致计算并返回identification
ed文件中的唯一颜色数。以下是我自己的本地文件的几个示例:
identify -format '%k' logo.png
257
identify -format '%k' testimage.png
20913
在本地目录中对一组15张大小为4032x3024的照片运行它可以得到这个结果(每张照片需要2秒以上的时间来计算颜色):
警告:使用矢量绘图应用程序(如inkscape)生成的复杂渐变也可能生成许多独特的颜色…有趣的想法,尽管我刚刚在保存为png的jpeg照片上尝试了这一点,但颜色总数仅为253,这使它看起来更像png类型的图像而不是照片。我想知道,从分辨率计算出预期的文件大小是否会更容易,例如,尺寸小得惊人的jpeg可能隐藏了png,而大的png文件大小可能表示图像。
time identify -format '%f : %k\n' *.JPG
P4061782.JPG : 285127
P4061783.JPG : 304247
P4061784.JPG : 230241
P4061785.JPG : 277545
P4061786.JPG : 300632
P4061787.JPG : 325916
P4061788.JPG : 301766
P4061789.JPG : 300821
P4061790.JPG : 265080
P4061791.JPG : 348247
P4101941.JPG : 323714
P4101942.JPG : 359688
P4101943.JPG : 338563
P4101944.JPG : 308578
P4101945.JPG : 291853
real 0m34.257s
user 0m33.301s
sys 0m0.678s