SYSTEM_KDです。
顔検出の記事の続きです。
前回の記事の最後に、バーコードも読めるらしいので、後で試そうと思うと書いたのですが、静止画像から読み取りだけであれば、おもいのほか簡単にできたので、書いておきます。
方法は、顔検出と同じで、
1.画像の読込
2.バーコード読込
3.結果表示
になります。
public class BarcodeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_barcode);
// バーコード画像読込
InputStream stream = getResources().openRawResource(R.raw.qrcode);
Bitmap bitmap = BitmapFactory.decodeStream(stream);
ImageView ivBarcode = (ImageView)findViewById(R.id.iv_barcode);
ivBarcode.setImageBitmap(bitmap);
BarcodeDetector detector = new BarcodeDetector.Builder(getApplicationContext())
.setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
.build();
Frame frame = new Frame.Builder().setBitmap(bitmap).build();
SparseArray<Barcode> barcodes = detector.detect(frame);
Barcode barcode = barcodes.valueAt(0);
String strBarcode = barcode.rawValue;
TextView tv = (TextView)findViewById(R.id.tv_barcode);
tv.setText(strBarcode);
}
}
顔検出では、「FaceDetector」を利用しましたが、バーコードの場合は「BarcodeDetector」を利用します。
あとは、検出したバーコードの結果を取得して、画面に表示しているだけです。
(QRコードは生成サービスを利用しました)
以上、簡単に読み取れました。
(次はカメラを通しての読み取りを試したいな)
0 件のコメント:
コメントを投稿