我正在编写一个显示不同颜色样本的应用程序,以帮助人们进行颜色协调。如何找到现实世界对象的RGB值?
例如,其中一种颜色是红苹果,但显然红苹果不仅仅是红色。它有其他颜色的暗示。
答案 0 :(得分:0)
对于每个对象,我都会这样做:
- 如果您有对象的数码照片,则可以跳过1和2。
必须有一种更简单的方法,但这会有效。
答案 1 :(得分:0)
嗯,说实话并不是一件容易的事,但是一个好的起点就是使用数码相机和/或平板扫描仪。
一旦你在计算机上有了一个图像,那么任务就更容易了,因为你需要的只是使用图片/照片编辑软件包,如photoshop或gimp,在你的应用程序中使用它们之前对一些颜色进行采样。 / p>
一旦你有几个不同的样本,那么你需要对它们进行平均,这很容易做到。假设你拍了5个RGB值样本:
255,50,10
250,40,11
253,51,15
248,60,13
254,45,20
您只需要添加每个组件并除以您拍摄的样本数量:
Red = (255 + 250 + 253 + 248 + 254) / 5
Green = (50 + 40 + 51 + 60 + 45) / 5
Blue = (10 + 11 + 15 + 13 + 20) / 5
现在,如果你问的是我如何在程序代码中自动执行此操作,那就是完全不同的鱼,首先你需要像网络摄像头这样的东西,然后你需要编写代码来捕获图像从网络摄像头开始,一旦你有你的图像,你不仅需要选择颜色的能力,而且要实际找出图像中你想从实际中选择颜色的对象。
现在,我会考虑使用第一种方法,这是我同意的一点手册,但更容易,并且会让你开始。
进行第二次数学运算所需的图像处理给了软件工程师& comp科学家头疼多年,仍然不是一门完美的科学......那是在我们开始考虑数学之前。
答案 2 :(得分:0)
如果您正在寻找程序化解决方案,那么您可以查看bitwise operations。这里的一般想法是你会读取它的二进制根中的图像,然后你可以逻辑地将这些位转换为RGB值。根据编程语言,有几种方法可以执行此操作。这是Actionscript3的一种方法。
http://www.flashandmath.com/intermediate/rgbs/explanations.html
如果您在这里寻找平均颜色,(对于AS3)
http://blog.soulwire.co.uk/code/actionscript-3/extract-average-colours-from-bitmapdata
Java的相关方法和解释