对于数据库应用程序,我正在尝试根据色标确定照片部分的平均色调。
作为一个新手,我发现这很难解释,所以我创建了一个简单的图表,显示我正在努力实现的目标。
http://www.knockyoursocksoff.com/shade/
如果有人有时间给我一些想法,我会非常感激。
祝福,
沃伦。
答案 0 :(得分:1)
如果您使用彩色照片,则应首先将选定区域从RBG(红色,绿色,蓝色)转换为HSL / HSV(article)。
HSL代表“色调,饱和度,亮度”。 1 您感兴趣的数字是亮度。
一般来说,亮度是指您如何感知彩色表面的亮度。很难用红色/绿色/蓝色组件来表示一片红色是否比一片蓝色更明亮/更暗。转换为HSL可以解决这个问题。
完成转换后,您只需平均所选区域的亮度值即可。
关于亮度值的快速说明:从技术上讲,您不能简单地平均亮度值,因为亮度的感知不是线性的(article)。但是,除非你正在编写一个非常科学的应用程序,否则简单地平均亮度将给你一个“足够准确”的值。
1 在Adobe Photoshop中,他们称之为HSB(色调,饱和度,亮度)
答案 1 :(得分:0)
我想我会从像素值的平均值开始:
for x = start_x to end_x
for y = stary_y to end_y
total += getPixel(x,y)
shade = total / (xlen*ylen)
如果你是用彩色的话,它会变得更复杂。