Возникло исключение: ValueError: все входные массивы должны иметь одинаковое количество измерений. - PullRequest
0 голосов
/ 18 марта 2019

То, что я пытаюсь сделать, это взять изображение размером 250 x 250 пикселей и повернуть весь текст на него на 1 с, а остальные на 0, а затем передать его через нейронную сеть. Чтобы превратить изображение в 1 и 0, я написал эту функцию:

def imageMatrix(image):
#Read the image
img = cv2.imread(image, 0)
#Get the size of the image
width, height = img.shape[:2]

#This will be fed pixel by pixel to the input of the neural network
matrix = [0]
for x in range(width):
    for y in range(height):
        color = img[x,y]
        if ( color != 255):
            matrix.append(1)
        else:
            matrix.append(0)


return matrix

Возвращает что-то вроде [1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0

Это действительно действительно сокращено, но мне любопытно, почему оно не печатает окончание ']'. Однако моя ОСНОВНАЯ проблема заключается в том, что я пытаюсь поместить несколько изображений в тренировочный массив ввода, и мне трудно это сделать. Я получаю сообщение «Возникла исключительная ситуация: ValueError: все входные массивы должны иметь одинаковое количество измерений».

training_inputs = np.array([imageMatrix("Blank.png")])
print(training_inputs)
training_outputs = np.array([imageMatrix("Blank.png")])
#train inputs as matrix and output as User1
#this sets up three different images
for i in range(3):
    image = "Test" + str(i+1) + ".png"
    np.append(training_inputs, imageMatrix(image), axis=i)
    image = "Train" + str(i+1) + ".png"
    np.append(training_outputs, imageMatrix(image), axis=i)

print(training_inputs)

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

...