Я разделил изображение на 16 цифр, чтобы построить регрессию, и теперь я хочу объединить его обратно в одно изображение.
Я написал цикл for, чтобы сделать это, но у меня проблемы с пониманием совета из предыдущих вопросов и о том, где я ошибаюсь.Кто-нибудь может объяснить, почему мои входные массивы не имеют одинаковое количество измерений.
from scipy import interpolate
allArrays = np.array([])
for i in range(len(a)):
fig = plt.figure()
ax = fig.add_axes([0.,0.,1.,1.])
if np.amax(a[i]) > 0:
x, y = np.where(a[i]>0)
f = interpolate.interp1d(y, x)
xnew = np.linspace(min(y), max(y), num=40)
ynew = f(xnew)
plt.plot(xnew, ynew, '-')
plt.ylim(256, 0)
plt.xlim(0,256)
fig.canvas.draw()
X = np.array(fig.canvas.renderer._renderer)
myArray = color.rgb2gray(X)
print(myArray.shape)
allArrays = np.concatenate([allArrays, myArray])
print(allArrays.shape)
else:
plt.xlim(0,256)
plt.ylim(0,256)
fig.canvas.draw()
X = np.array(fig.canvas.renderer._renderer)
myArray = color.rgb2gray(X)
print(myArray.shape)
allArrays = np.concatenate([allArrays, myArray])
print(allArrays.shape)
i += 1
Вывод: myArray.shape (480, 640)
Сообщение об ошибке: все входные массивы должныимеют одинаковое количество измерений
Я уверен, что это действительно просто, но я не могу понять это.Спасибо.