quarta-feira, 16 de julho de 2014

Detector de Moedas em Python

Este exemplo encontra uma primeira moeda na imagem e, em seguida, usa essa medida
para determinar o resto das moedas na imagem. Desde a moeda de  quarter tem sempre
um determinado tamanho, podemos usa-lo como uma referencia por ela ser conhecida.

Usamos milimetros para pixels para fazer a conversao.
Os tamanhos das moedas são como se segue:

penny - 19.05 mm
nickel - 21.21 mm
dime - 17.9 mm
quarter - 24.26 mm


Bom, então vamos ao código!



Segue uma Imagem do resultado!


exemplo retirado e adaptado de:
 https://github.com/sightmachine/SimpleCV/blob/master/SimpleCV/examples/detection/CoinDetector.py

veja mais em https://github.com/sightmachine/SimpleCV/

ajude Nossa Comunidade a crescer!

Um comentário:

  1. what if it's exactly 18 or 20?

    Would you consider a class for coin sizes?
    Or a table for the sizes instead of if/else?

    This is more lines, but simpler at every line. ...

    class coinsize:
    def __init__(self, low, high, name):
    self.low = low
    self.high = high
    self.name=name
    def matches(self, diameter):
    return self.low < diameter < self.high

    coins_by_size = [
    coinsize(23,26,"quarter"),
    coinsize(16,18,"dime"),
    coinsize(20,23,"nickel"),
    coinsize(18,20,"penny"),
    ]

    # Just an example, not quite like yours...
    for diameter in range(20,25):
    print [ (diameter, x.name)
    for x in coins_by_size
    if x.matches(diameter)
    ] or "unknown"

    ResponderExcluir