BoofCV - функция canny.process() занимает много времени

Я использую BoofCV версии 0.27 для Android, я обнаруживаю прямоугольник на изображении. Для этого я использую следующее: здесь

public static void fitCannyBinary( GrayF32 input ) {

        BufferedImage displayImage = new BufferedImage(input.width,input.height,BufferedImage.TYPE_INT_RGB);
        GrayU8 binary = new GrayU8(input.width,input.height);

        // Finds edges inside the image
        CannyEdge<GrayF32,GrayF32> canny =
                FactoryEdgeDetectors.canny(2, false, true, GrayF32.class, GrayF32.class);

        canny.process(input,0.1f,0.3f,binary);

        // Only external contours are relevant
        List<Contour> contours = BinaryImageOps.contourExternal(binary, ConnectRule.EIGHT);

        Graphics2D g2 = displayImage.createGraphics();
        g2.setStroke(new BasicStroke(2));

        // used to select colors for each line
        Random rand = new Random(234);

        for( Contour c : contours ) {
            List<PointIndex_I32> vertexes = ShapeFittingOps.fitPolygon(c.external,true, minSide,cornerPenalty);

            g2.setColor(new Color(rand.nextInt()));
            VisualizeShapes.drawPolygon(vertexes,true,g2);
        }

        gui.addImage(displayImage, "Canny Contour");
    }

Это работает отлично и дает мне ожидаемый результат, но для выполнения следующей строки требуется до 15 секунд.

canny.process(input,0.1f,0.3f,binary);

И вся функция выполняется почти 20 секунд. Может ли кто-нибудь помочь мне в оптимизации этого?

Мое требование:

введите здесь описание изображения

Мне нужно обнаружить такой прямоугольник на изображении, сделанном мобильной камерой.

Заранее спасибо.


person Maruthi Adithya    schedule 29.05.2019    source источник
comment
Насколько велико изображение?   -  person lessthanoptimal    schedule 15.06.2019
comment
Размер изображения 1600 * 800. Если это не сработает, не могли бы вы рассказать мне, как лучше определить прямоугольник на изображении за 3 или 4 секунды?   -  person Maruthi Adithya    schedule 16.06.2019
comment
Посмотрите на пример обнаружения черного полигона. Если вы запускаете это на рабочем столе, ваш код должен работать намного быстрее. Android может быть таким медленным, если ему не хватает памяти.   -  person lessthanoptimal    schedule 16.06.2019