有没有人知道任何非常快速的算法来确定图像是照片还是绘图?
主要目的是确定BMP图像的最合适格式是PNG还是JPEG。我不希望带有线条的文件被jpeg模糊,但同时我不想存储无损照片。
目前我只是用PNG和高质量的JPEG来拍摄最小的文件大小。这似乎适用于99%。但总有一些事情,比如图画照片和有很多渐变的图画都会愚弄它。
答案 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。王牌