I am looking for a library or method to decode a QR Code (or potentially another form of 2d barcode) and to be able to actually determine the camera position and orientation. This seems like it should be doable, but I am not entirely sure.
Does anyone know what the best route for this is? Or if it is even possible?
zxing is the open-source Google-hosted Java library for 2d barcodes including QR.
see com.google.zxing.ResultMetadataType.ORIENTATION
(optional metadata returned in a hashtable from com.google.zxing.Result.getResultMetadata()
):
Denotes the likely approximate orientation of the barcode in the image. This value is given as degrees rotated clockwise from the normal, upright orientation. For example a 1D barcode which was found by reading top-to-bottom would be said to have orientation "90". This key maps to an Integer whose value is in the range [0,360).
Many Android apps make heavy use of QR codes - if I were you I'd do some research using Android as one of the keywords and may be add "android" as a tag on this Q (or post android-specific version of it).
P.S. Since Android code is IIRC open source avialable from Google, if the QR logic is available in core Android you'd be able to have access to it.