Já me deparei com este problema anteriormente e não achei tão simples como parecia ser.
Vamos, primeiro, para o caso mais simples: uma figura com poucas cores (ex. desenhos).
Nesse caso o que pode ser feito é percorrer os pixels da imagem, montando um conjunto de cores encontradas. No entanto, as cores de cada pixel serão triplas RGB. Se quiser transformá-las em texto (ex. (255, 0, 0) para "vermelho"), cria um "banco" de cores e encontra a cor mais "próxima" usando esta técnica:
http://en.wikipedia.org/wiki/Color_difference.
Já no caso mais complexo, as imagens possuem muitas cores diferentes (mas semelhantes) (ex. fotos).
Na foto de uma folha, por exemplo, existem muitas tonalidades de verde (e de amarelo). Perceba que não necessariamente existe o verde puro (0, 255, 0). Para os nossos olhos, esses são todos verdes, mas para o computador, cada um é uma cor diferente, isso impede de usarmos o mesmo método de antes.
O que pode ser feito então? Depende da saída esperada e das imagens utilizadas. Por isso que é importante detalhar o seu problema.
Se, no caso que você citou (10% da folha está amarela mas o resto é verde), você quiser que o algoritmo diga que a imagem tem amarelo, talvez usar o método pras imagens mais simples dê certo, porque tons RGB de verde levemente diferentes possivelmente levarão para o mesmo verde. Se quiser que diga que só tem verde, você precisará de uma forma de desconsiderar o amarelo. Pode ser por algum algoritmo de segmentação (deve obter um resultado melho) ou remoção de ruído, usando o filtro da média ou mediana, reduzindo o tamanho da imagem ou a quantidade de cores (como Thiago Santos disse). Perceba que a aplicação destes métodos procura "simplificar" a imagem (reduzindo-a para o primeiro caso).
Até onde eu pesquisei, esse ainda é um problema em aberto. Vai ser difícil achar um algoritmo perfeito, então o jeito é experimentar com as imagens de entrada e ver qual método se sai melhor.
Escrevendo esse email, percebi que talvez dê pra utilizar alguma técnica de aprendizado de máquina pra detectar as cores. Não conheço muito dessa área, mas é algo a se pensar.
Abraços,
André Costa