Как изменить размер изображения до 20x20 и объединить его в одну строку размером 400 пикселейPython

Программы на Python
Ответить
Anonymous
 Как изменить размер изображения до 20x20 и объединить его в одну строку размером 400 пикселей

Сообщение Anonymous »

Я работаю над проектом по считыванию рукописной цифры с изображения с помощью оптического распознавания символов. Я использовал этот источник OpenCV, чтобы проверить, работает ли он: https://docs.opencv.org/4.x/d8/d4b/tuto ... pencv.html.
Код из документации работал пока:

Код: Выделить всё

import numpy as np
import cv2 as cv

img = cv.imread('digits.png')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

# Now we split the image to 5000 cells, each 20x20 size
cells = [np.hsplit(row,100) for row in np.vsplit(gray,50)]

...

# Now we check the accuracy of classification
# For that, compare the result with test_labels and check which are wrong
matches = result==test_labels
correct = np.count_nonzero(matches)
accuracy = correct*100.0/result.size
print( accuracy )
В документации текст гласит: «Каждая цифра представляет собой изображение размером 20x20. Поэтому наш первый шаг — разделить это изображение на 5000 различных изображений цифр. Затем для каждой цифры (изображение 20x20) мы сводим его в одну строку длиной 400 пикселей."
Теперь я пытаюсь запустить этот код, чтобы изменить размер/масштаб моих изображений, чтобы они вписались в обученную модель и предсказали, какие рукописный номер есть на каждом изображении. Причина в том, что мои изображения имеют размеры 70x51, 63x48 или 69x49. Оно варьируется для каждого изображения.
И вот что у меня получилось:

Код: Выделить всё

    img_resized = cv.resize(img, (20, 20), interpolation=cv.INTER_AREA)
img_flatten = img_resized.reshape(-1, 400).astype(np.float32)

with np.load(knn_data_path) as data:
train = data['train']
train_labels = data['train_labels']

knn = cv.ml.KNearest_create()
knn.train(train, cv.ml.ROW_SAMPLE, train_labels)

ret, result, neighbours, dist = knn.findNearest(img_flatten, k=5)

return int(result[0][0])
Но я не могу изменить его размер, потому что в конце концов я получаю такой вывод:
Изображение
Что-то работает не так. Как я могу изменить размер изображений, чтобы запустить KNN? Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/793 ... 400-pixels
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»