Python - Как применить алгоритм «нормализации и центрирования ограничивающего прямоугольника» для матрицы изображения? - PullRequest
0 голосов
/ 19 апреля 2019

Я разрабатываю рукописный распознаватель цифр с набором символов Деванагари от Kaggle.Мне удалось отсканировать все изображения и обучить мою модель в Tensorflow.Теперь я не могу преобразовать свои собственные рукописные цифры, нарисованные на холсте Tkinter, в изображение формата MNIST 28x28.Это информация о png-изображении, которое загружается с canvas.

Shape : (264, 264) 
[[255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]
 ...
 [255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]]

Теперь я хочу иметь возможность преобразовать матрицу изображения 264x264 в 28x28, применяя «нормализация и центрирование ограничивающего прямоугольника» алгоритм.Я упоминал Нормализация и центрирование изображений в MNIST , что я не совсем понял, как это работает.А также я сослался convert-images-to-mnist-format.py файл, который ориентирован на множество изображений.Поэтому было бы очень полезно, если бы было объяснение того, как работает алгоритм и как его можно использовать для нормализации и уменьшения массива в один пиксель размером 264x264 или около того.Я использую Python 3.x.

ОБНОВЛЕНИЕ: Я мог бы сделать это возможным, сегментируя изображение с помощью cv2.findContours(), получив ограничивающий прямоугольник, а затем изменив размер изображения до необходимого размера, используяcv2.resize().Не уверен, что это правильный и эффективный способ сделать это.Но у меня это сработало.

...