ValueError: невозможно преобразовать массив размером 230400 в форму (1,153600) - PullRequest
0 голосов
/ 02 декабря 2019

Я пробую проект самостоятельного вождения. Я хочу пометить кадр, получив его через камеру Джетсона Нано. Однако возникла та же ошибка, что и в названии.

temp_array = roi.reshape(1, int(height / 2) * width).astype(np.float32)
ValueError: cannot reshape array of size 230400 into shape (1,153600)

Можете взглянуть на мой код?

import socket
import numpy as np
import cv2
import pygame

HOST = '127.0.0.1'
PORT = 9999

def recvall(sock, count):
     buf = b''
     while count:
        newbuf = sock.recv(count)
        if not newbuf: return None
        buf += newbuf
        count -= len(newbuf)
     return buf

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
while True:

    length = recvall(client_socket, 16)
    stringData = recvall(client_socket, int(length))
    data = np.frombuffer(stringData, dtype='uint8')

    decimg = cv2.imdecode(data, cv2. )
    print(type(decimg)) # class numpy.ndarray
    print(decimg.shape) # 480,640,3
    height, width,_ = decimg.shape
    roi = decimg[120:240, :] #120,640,3
    print(roi.shape)
    cv2.imshow('Client', decimg)
    cv2.imshow('roi',roi)

    temp_array = roi.reshape(1, int(height / 2) * width).astype(np.float32)

  #  print(temp_array)

    key = cv2.waitKey(1)
    if key == 27:
        break```

1 Ответ

0 голосов
/ 02 декабря 2019

Проблема с размерами массива. Вы собираетесь преобразовать массив из 230400 в (1, 153600). Могу ли я точно знать, что вы хотите сделать?

...