Я пытаюсь создать сканер банковских карт на Android с помощью OpenCV, сначала я создаю область, в которой пользователь может сканировать свои карты, а затем обрезать ее, я борюсь с областью прямоугольника и помещаю ее в центр, Любые предложения о том, как я могу это сделать? Большое спасибо
Вот что я сделал до сих пор:
Он делает прямоугольник и центрируется, но размера недостаточно. Я пытался изменить числа, но положение не центрируется.
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
Mat mrgba = inputFrame.rgba();
int w = mrgba.width();
int h = mrgba.height();
Imgproc.rectangle(mrgba, new Point(w * 1 / 3, h * 1 / 3), new Point(
w * 2 / 3, h * 2 / 3 ), new Scalar( 255, 0, 0 ), 5
);
return mrgba;
}
ВЫХОД




Попробуй это:
int w = mrgba.width();
int h = mrgba.height();
int w_rect = w*3/4; // or 640
int h_rect = h*3/4; // or 480
Imgproc.rectangle(mrgba, new Point( (w-w_rect)/2, (h-h_rect)/2 ), new Point(
(w+w_rect)/2, (h+h_rect)/2 ), new Scalar( 255, 0, 0 ), 5
Убедитесь, что w_rect и h_rect меньше, чем ш и час, соответственно.
Есть ли способ добавить несколько областей интереса, чтобы найти контуры в определенных областях интереса? Я хочу найти прямоугольник Трехугольник, который находится в вертикальном положении.