3
onPreviewFrameから受信した生のバイトから輪郭を探しようとしています。 受信した未処理のバイトは、setDisplayOrientationを実行すると回転しません(アンドロイドの開発者ドキュメントに準拠)。輪郭のみを回転させることは困難になりつつあります。どのようにこれらのバイトを効率的に回転させ、それを処理するのですか?私は輪郭を見つけるためにopenCVを使用しています。ここonPreviewFrameの画像処理
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
previewSize = cameraConfigUtil.cameraInstance.getParameters().getPreviewSize();
Mat srcMat = new Mat(previewSize.height, previewSize.width, CvType.CV_8UC3);
srcMat.put(0, 0, data);
rect = ImageCorrection.getLargestContour(data, previewSize.height, previewSize.width);
android.graphics.Rect rectangle = new android.graphics.Rect();
rectangle.left = rect.x;
rectangle.top = rect.y;
rectangle.right = rect.x + rect.width;
rectangle.bottom = rect.y + rect.height;
mOverlay.clear();
BarcodeGraphic graphic = new BarcodeGraphic(mOverlay);
mOverlay.add(graphic);
graphic.updateItem(rectangle);
Imgproc.rectangle(srcMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(255, 0, 0, 255), 3);
Utils.matToBitmap(srcMat, bitmap);
}
矩形は、私はこれがsetDisplayOrientationに設定された角度に応じて回転されるようにする、輪郭の4点を与えます。