擅长:python、mysql、java
<p>我将使用Python图像库。这是一段计算图像中白色像素/非白色像素数的代码。</p>
<pre><code>import sys
from PIL import Image
im = Image.open(sys.argv[1])
white = 0
black = 0
for i in im.getdata():
if i == (255,255,255):
white += 1
else:
# we assume black everything that is not white:
black += 1
print im.size[0],im.size[1],white,black
</code></pre>
<p>在你的例子中,我会做一个字典来保持每个rgb三元组对一个计数器,所以我会像这样重新编写程序(未测试)</p>
<pre><code>import sys
from PIL import Image
im = Image.open(sys.argv[1])
count= {}
for i in im.getdata():
if not count.has_key(i):
count[i] = 0
count[i] += 1
</code></pre>
<p>现在可以检查计数最高的一个,得到使用最多的rgb三元组。当然,如果你想同时检查相邻颜色,你必须转换成HSV并检查不同HSV点之间的距离,然后决定哪个距离太大。在HSV空间中足够近的点(尤其是色调分量)很可能是相同的颜色,因此可以将它们相加。</p>