Mas complejo que python? Si cualquier cosa es más compleja. Si quieres algo en java este es el primer resultado de google:
http://www.cse.iitd.ernet.in/~aseth/...oj/README.html
Y lo de las cruces se puede hacer pero vas a tener que investigar un algoritmo y hacerlo desde cero, y me temo que será bastante más complejo, ya que justamente la idea del los circulos es para facilitar la lectura por maquina.
Si quieres hacerlo desde cero empiezate a leer sobre computer vision, a lo mejor openCV.