На самом деле, вариантов немного. Наиболее стабильная и рабочая библиотека - ZXing. Написана на Java, но, вроде как, есть порт на С++. Работоспособность сильно зависит от камеры и автофокуса, протестировать библиотеку на андроиде можно приложением Barcode Scanner от ZXing Team. Также посмотрите в сторону ZBar или поищите на CodeProject.
Еще вариант - писать собственный определитель. OpenCV вполне в состоянии найти квадрат на фото, выровнять изображение относительно него, а затем найти определенный паттерн QR-кода на нем.
Добавлено:
В ZXing и ZBar стоит прошерстить документацию - для определения в сложных условиях там существуют специальные структуры и флаги.