Sil*_*ind 6 algorithm image-processing computer-vision
看看这两个示例图像:
我希望能够在大型照片和类似图像中识别这些类型的图像.通过photograph
我的意思是一张照片的人,风景,动物等.
我不介意是否有一些照片被错误地识别为这些照片,uniform images
但我不会真的想通过将它们识别为照片来"遗漏"其中的一些照片.
我想到的最简单的事情是逐个像素地分析图像以找到最高和最低的R,G,B值(每个通道分别).如果最低值和最高值之间的差异很大,则存在大的颜色变化,并且这样的图像可能是照片.
其他想法是以类似的方式分析每个像素的Hue值.问题是在HSL模型中,橙色红色和粉红色在顺时针方向看时差异大约为350度,逆时针方向看时差异为10度.所以我不能比较每个像素的Hue组件,因为我会得到一些奇怪的结果.
此外,还存在噪音问题 - 一个白色或黑色像素会破坏这样的测试.因此,如果只有极少数像素具有这样的极值,我将需要以某种方式排除极值.但是在这一点上它变得越来越复杂,我觉得这不是最好的方法.
我也在考虑将对比度与最大值进行对比,然后像上面描述的RGB一样运行测试.它可能会使事情变得更容易,但仍然有一两个异常像素会破坏测试.如何处理此类案件?
我不介意运行几种不同的算法来覆盖不同的图像类型.但请注意,我正在处理来自数码相机的图像,所以6MP,12MP甚至16MP都很常见.因为运行计算密集型算法是不可取的.我处理数百甚至数千个图像,并且只有有限的CPU资源用于图像处理.让我们说每张大图片中的第二或第二张是我能接受的最大值.
我知道,例如蓝天的照片可能会引发误报,但那没关系.误报比错过更好.