"error: (-215)" означает, что утверждение не выполнено. В этом случае cv :: imshow утверждает, что данное изображение не пусто: https://github.com/opencv/opencv/blob/b0209ad7f742ecc22de2944cd12c2c9fed036f2f/modules/highgui/src/window.cpp#L281
Как отмечено в учебнике Getting Started with Images OpenCV Python, если файл не существует, то cv2.imread () вернет None
; это не вызывает исключения.
Таким образом, следующий код также приводит к ошибке «(-215) size.width> 0 & amp; size.height> 0»:
img = cv2.imread('no-such-file.jpg', 0)
cv2.imshow('image', img)
Убедитесь, что файл действительно существует по указанному пути. Если это так, возможно, изображение повреждено или является пустым изображением.
Как я уже сказал в комментарии, прочитайте . Как я могу прикрепить функцию pyplot к экземпляру фигуры? для объяснения разницы между интерфейсами OO и state-machine с matplotlib
.
Вы должны изменить свои функции построения, чтобы быть чем-то вроде
def plot(..., ax=None, **kwargs):
if ax is None:
ax = gca()
ax.plot(..., **kwargs)
Вы можете использовать функцию графика определенных осей:
import matplotlib.pyplot as plt
from scipy import sin, cos
f, ax = plt.subplots(2,1)
x = [1,2,3,4,5,6,7,8,9]
y1 = sin(x)
y2 = cos(x)
plt.sca(ax[0])
plt.plot(x,y1)
plt.sca(ax[1])
plt.plot(x,y2)
plt.show()
Это должно быть показано на двух разных поднаборах.
sca()
, которая устанавливает текущие активные оси. Теперь он должен работать с нормальной функцией графика, чтобы вы могли использовать ее в своем классе.
– Harpe
13 June 2013 в 13:42
matplotlib.pyplot
. Сюжет выполнен по указанным осям.
– Rutger Kassies
13 June 2013 в 13:52
Line2D
имеет свойствоaxes
, но он задается кодом вplot
, а значение, которое вы передаете, игнорируется. Можете ли вы указать мне, где документация говорит, что это должно иметь такое поведение? – tacaswell 14 June 2013 в 16:39