快速确定图像是照片还是绘图

时间:2012-10-29 10:27:43

标签: image png jpeg bmp

有没有人知道任何非常快速的算法来确定图像是照片还是绘图?

主要目的是确定BMP图像的最合适格式是PNG还是JPEG。我不希望带有线条的文件被jpeg模糊,但同时我不想存储无损照片。

目前我只是用PNG和高质量的JPEG来拍摄最小的文件大小。这似乎适用于99%。但总有一些事情,比如图画照片和有很多渐变的图画都会愚弄它。

1 个答案:

答案 0 :(得分:2)

你可以使用滤镜来1.使图片变成黑白色2.然后抽出对比度,然后计算像素,看看你是否得到更多白色像素,然后是黑色/灰色像素

也许是这样的:

if( whitePixels.Count >= ( whitePixels.Count + blackAndGreyPixels.Count ) / 100 * 70 ) {
    // is drawing
} else {
    // is photograph
}

你应该测试70%的标记,这取决于图像大小和你要比较的图像类型。

希望这可以帮助您了解SIMPLE algorythm如何运作。

如果你需要更多的帮助,你应该说你想要使用什么语言(服务器端的PHP或客户端的.NET),然后我可以给你一个代码示例。

如果您觉得有用,请投票/标记为答案。

g.r。王牌