让我们说我查询
http://images.google.com.sg/images?q=sky&imgcolor=black
我得到了所有的黑色天空,算法背后的算法究竟如何?
基于Google工程师Henry Rowley,Shumeet Baluja和Yushi Jing博士发表的这篇论文,你的问题中关于识别图像颜色的最重要的含义似乎与google的"saferank"算法有关,可以检测到没有肤色的图片周围的任何文字.
本文首先通过描述"经典"方法进行描述,这些方法通常基于标准化颜色亮度,然后使用" 高斯分布 ",或使用以像素为单位构建的三维直方图(每种颜色为从0到255的8位整数值表示该颜色包含在像素中的多少.还引入了依赖于诸如"亮度"(通常被错误地称为"发光度")的特性的方法,其是来自给定图像的肉眼发光强度的密度.
谷歌文件提到他们需要使用他们的算法处理大约10 ^ 9个图像,因此它需要尽可能高效.为了实现这一点,他们在ROI(感兴趣的区域)上执行大部分计算,ROI是图像中心的矩形,并且在所有侧面上插入1/6的图像尺寸.一旦他们确定了投资回报率,他们就会有许多不同的算法应用于图像,包括面部检测算法,颜色稳定性等等,这些算法整体上可以找到图像着色的统计趋势,最重要的是找到颜色统计分布中频率最高的阴影.
他们使用其他功能,如熵,边缘检测和纹理定义.为了从图像中提取线条,他们使用概率Hough变换的OpenCV实现(Bradski,2000)(Kiryati等,1991)计算在皮肤颜色连接组件的边缘,这允许他们找到可能不是身体部位的直线,并且还允许他们更好地确定哪些颜色在图像中最重要,这是他们的图像颜色搜索中的关键因素.
有关该主题的技术细节(包括数学方程式等)的更多信息,请阅读开头链接的Google论文,并查看其网站的"研究"部分.
非常有趣的问题和主题!
图像只是像素.像素只是RGB值.我们知道RGB中的黑色是什么,所以我们可以在图像中查找它.