Как найти сложность вычисления алгоритма обработки изображений - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь найти сложность вычислений для алгоритма в отношении количества пикселей, какую процедуру мне нужно выполнить. Алгоритм основан на регистрации изображений.

1 Ответ

0 голосов
/ 01 апреля 2019

В качестве приблизительной оценки вы можете посмотреть количество циклов или количество раз, которое каждый пиксель просматривается / редактируется алгоритмом.

например, этот алгоритм преобразует изображение в цвета сепии

BufferedImage img = <input of the algorithm>
for(int i=0;i<img.getWidth();i++){
    for(int j=0;j<img.getHeight();j++){
        Color c = new Color(img.getRGB(i,j));
        double r = c.getRed();
        double g = c.getGreen();
        double b = c.getBlue();

        double r2 = 0.39 * r + 0.76 * g + 0.19 * b;
        double g2 = 0.34 * r + 0.69 * g + 0.17 * b;
        double b2 = 0.27 * r + 0.53 * g + 0.13 * b;
    }
}

Я вижу, что есть два цикла, один итерируется по ширине изображения, другой - по высоте изображения.

Каждый пиксель посещается этим алгоритмом один раз.Его сложность составляет O (n), где n - количество пикселей во входном изображении.

...