Ускорьте простую функцию предварительной обработки изображений - PullRequest
0 голосов
/ 16 февраля 2020

Я создал эту простую функцию на основе scikit-image function :

from skimage import exposure
import numpy as np

def hist_contr_func(image):
    '''Function from skimage that corrects the histogram to enhance contrast - "Adaptive equalization" '''
    # Line below is needed, because equalize_adapthist works in pixel value range (0,1)
    image = image / 255.

    h, w = image.shape[:2]
    # Line below is required, because equalize_adapthist works on arrays with shape (h,w)
    image = np.resize(image, (h,w))
    img_adapteq = exposure.equalize_adapthist(image, clip_limit=0.03)

    # I back-resize, because keras works with arrays with shape (h,w,channels)
    img_adapteq = np.resize(img_adapteq, (h,w,1))

    return img_adapteq

Как я могу ускорить функцию? Я думаю, узкое место в exposure.equalize_adapthist, но также приветствуются улучшения в расчетах изменения размера

Больше, но не существенная информация: я использую функцию для предварительной обработки изображений в кератах:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(
    rotation_range=30,
    width_shift_range=0.15,
    preprocessing_function=hist_contr_func)

Без preprocessing_function=hist_contr_func Мой скрипт keras работает в 5 раз быстрее. Я также был бы признателен за рекомендации других пакетов, улучшающих контраст, исправляющих гистограмму, которые работают быстрее. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...