我有一组天空图像,一些有云,有些没有.
有些是晴朗的蓝天,有些是阴天,有些是白色和灰色的云.
如何确定特定的RGB值或多或少是蓝色?
任何蓝色的阴影都是“蓝色” – 浅蓝色,深蓝色,天蓝色 – 这些都是蓝色的.
我希望将图像中的颜色减少到16个.然后我想制作白色,银色,灰色,蓝色和“其他所有”的直方图.
我如何从RGB值知道什么是蓝色或银色,白色或灰色,还是其他什么?
解决方法
RGB不是最适合这类事情的色彩空间.诸如
HSV (also known as HSB)的颜色空间为给定颜色提供了更直观和描述性的模型.
因此,为了得到你所拥有的,你可以使用给定颜色的色调.如果您正在处理System.Drawing.Color结构,则可以使用GetHue()方法返回以度为单位的色调值.给定如下的Hue轮,您可以定义您将接受的Blue值的上限和下限(以度为单位).
一般来说,图像处理和色彩理论远非琐碎的主题.我建议你找到最符合你要求的方法.这对你来说可能已经足够,或者可能不是.如果没有,那么也许你可以缩小我的问题.
还要意识到亮度和饱和度组件仍然需要一些阈值,以确保您实际上不处理黑色,白色或灰色.