Faits: A. D._, né en 1988, a commencé un apprentissage de laborantin à l'Etat de Genève le 1er septembre 2005. A ce titre, il était assuré auprès de la Caisse nationale suisse d'assurance en cas d'accident (CNA). Le 1er octobre 2009, il a obtenu son certificat fédéral de capacité (CFC) de laborantin en chimie; depuis le 15 novembre 2010, il travaille au service de l'entreprise X._ pour un salaire mensuel de 4'800 fr. Au cours de son apprentissage, le 12 mai 2006, D._ a été victime d'un accident sur la voie publique. La CNA, qui a pris le cas en charge, lui a alloué une indemnité pour atteinte à l'intégrité de 28 %, par décision du 1er septembre 2009. Par écriture du 20 septembre 2010, l'assuré a fait savoir à la CNA qu'il avait été déclaré inapte au service militaire et qu'il avait dû renoncer à la carrière de policier à laquelle il se destinait après son apprentissage de laborantin en chimie, en raison des séquelles de l'accident survenu en 2006. Il a demandé à la CNA d'évaluer son invalidité et de fixer sa rente en fonction du revenu qu'il aurait pu obtenir en qualité de policier. Le 29 septembre 2010, la CNA a répondu à l'assuré qu'il suivait son apprentissage de laborantin en chimie au moment de l'accident, qu'il avait pu achever cette formation et qu'il travaillait normalement dans ce domaine depuis l'obtention de son CFC, si bien qu'aucune perte de gain ne pouvait être retenue. Par décision du 12 mai 2011, confirmée sur opposition le 26 juillet 2011, la CNA a nié le droit de l'assuré à une rente, en l'absence de perte de gain. B. D._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, en concluant à l'octroi d'une rente d'invalidité de 36 % à compter du 1er septembre 2009. Par jugement du 28 mars 2012, la juridiction cantonale a rejeté le recours. C. D._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, avec suite de dépens, en concluant principalement au versement d'une rente d'invalidité de 36 % depuis le 1er septembre 2009, subsidiairement au renvoi de la cause à la Cour de justice. L'intimée conclut au rejet du recours. L'Office fédéral de la santé publique a renoncé à se déterminer. 