python + numpy error: ValueError: не удалось передать операнды вместе с фигурами - PullRequest
0 голосов
/ 20 декабря 2018

Добрый день!В настоящее время я конвертирую функцию из MATLAB, которая включает в себя обработку изображений.Прямо сейчас я должен обработать изображение, используя функцию 'canny'.И теперь я получаю 'ValueError: операнды не могут быть переданы вместе с фигурами' на строку

    X = (h + (d1 + d2) / 2.0) * xscaling

, потому что 'h' - единственный, который возвращает другой кортежsize

 h =   (np.hstack((im[:, 2:cols], np.zeros((rows, 1)))) - np.hstack((np.zeros((rows, 1)), im[:, 1:cols-1])))
 v = (np.vstack((im[2:rows,:] , np.zeros((1,cols)))) - np.vstack((np.zeros((1,cols)), im[1:rows-1,:])))

d1 = (np.block([[im[1:rows, 1:cols], np.zeros((rows-1, 1))],
            [np.zeros((1, cols))]]) -
  np.block([[np.zeros((1, cols))],
            [np.zeros((rows-1, 1)), im[:rows-1, :cols-1]]]))
d2 = (np.block([[np.zeros((1, cols))],
            [im[:rows-1, 1:cols], np.zeros((rows-1, 1))]]) -
  np.block([[np.zeros((rows-1, 1)), im[1:rows, :cols-1]],
            [np.zeros((1, cols))]]))

следующие переменные возвращают значения (np.shape ()):

h = (112L, 127L)

v =(111L, 128L)

d1 = (112L, 128L)

d2 = (112L, 128L)

Состав переменной hвычисление? Может кто-нибудь, пожалуйста, изменить , чтобы он выглядел одинаково с остальными переменными?

РЕДАКТИРОВАТЬ: ПЕРЕМЕННОЕ Значение 'v' было (111L, 128L) нет (112L, 128L)

...