Быстрый алгоритм l oop open cv python - PullRequest
1 голос
/ 01 апреля 2020

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

Этот алгоритм очень медленный и занимает несколько секунд.

Есть ли более быстрый способ сделать это работа?

   for x in range(img.shape[0]):
        for y in range(img.shape[1]):
            if(img[x,y]>180 or y>450):
                img[x,y]=255

1 Ответ

1 голос
/ 01 апреля 2020

Вы должны использовать векторизованные numpy операции, что-то вроде

img[img > 180] = 255
img[:,450:] = 255

Должно делать именно то, что делает ваш l oop, но гораздо быстрее . Чтобы применить оба условия вместе, вы можете сделать

img[:,450:][img[:,450:] > 180] = 255
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...