Я получаю следующую ошибку, когда пытаюсь сохранить свой ndarray с помощью matplotlib, с помощью plt.axis ('off'):
File "classifier/classifier_tester.py", line 25, in remove_outliers
plt.axes('off')
File "/usr/lib64/python3.6/site-packages/matplotlib/pyplot.py", line 923, in axes
return gcf().add_axes(rect, **kwargs)
File "/usr/lib64/python3.6/site-packages/matplotlib/figure.py", line 1135, in add_axes
if not np.isfinite(rect).all():
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Я никогда не видел этой ошибки, что может быть проблема? D-тип моего ndarrays: float64.
Для контекста в этой функции возникает ошибка:
def remove_outliers(image, save_dir, counter):
from scipy import ndimage
from skimage.morphology import watershed
distance = ndimage.distance_transform_edt(image)
markers = ndimage.label(image)[0]
labels = watershed(-distance, markers, mask=image)
print(type(distance))
print(distance.dtype)
if len(np.unique(labels)) > 2:
new = np.where(labels == 1, 1, 0)
plt.imshow(distance)
plt.axes('off')
plt.savefig(save_dir + 'outliers/distance{}.pdf'.format(counter), format='pdf')
plt.close()
plt.imshow(labels)
plt.title(str(np.unique(labels)))
# plt.axes('off')
plt.savefig(save_dir + 'outliers/labels{}.pdf'.format(counter), format='pdf')
plt.close()
plt.imshow(new, cmap = 'gray')
# plt.axes('off')
plt.savefig(save_dir + 'outliers/output{}.pdf'.format(counter), format='pdf')
plt.close()
plt.imshow(image, cmap = 'gray')
# plt.axes('off')
plt.savefig(save_dir + 'outliers/input{}.pdf'.format(counter), format='pdf')
plt.close()
return new
else: return image
Редактировать: также у меня нет проблем с сохранением изображений с осью.