Witam, w trakcie pracy nad projektem natknąłem się na taki problem. Posiadając takie oto zdjęcie tablicy:
user image
Chciałbym zostawić tylko biały prostokąt z literami, coś w tym stylu:
user image

Leczy niestety udaje mi się jedynie coś takiego:
user image
Co nie do końca jest tym, czego oczekuję.

Oto kod za pomocą którego staram się tego osiągnąć przy użyciu OpenCV:

Kopiuj
Mat copy = new Mat();
        doneImg.copyTo(copy);

        Mat hierarchy = new Mat();

        List<MatOfPoint> contours = new ArrayList<>();
        Imgproc.findContours(copy, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);

        for (MatOfPoint mop : contours) {
            Mat temp = new Mat();
            mop.copyTo(temp);
            double test = Imgproc.contourArea(temp);
            System.out.println(test);

            if (test > 50000.0) {
                MatOfPoint2f mop2f = new MatOfPoint2f(mop.toArray());
                RotatedRect rr = Imgproc.minAreaRect(mop2f);

                double height = rr.size.height;
                rr.size.height = rr.size.width;
                rr.size.width = height;

                Mat crop = new Mat();
                Imgproc.getRectSubPix(doneImg, rr.size, rr.center, crop);
                Highgui.imwrite("foundPlate\\crop" + test + ".jpg", crop);

            }
        }

Czy ktoś wie jak usprawnić mój kod? Będę wdzięczny za każdą pomoc.