.jpg имеет 3 канала, поэтому вы отправляете трехмерный массив, но medfilt2d принимает массив 2d.
Это можно решить двумя способами.
- Просто читайте как оттенки серого изображение
import glob
import cv2
from scipy import signal
import numpy as np
a = cv2.imread(glob.glob('lp_train/*.jpg')[0], 0) # grayscale, single channel
import matplotlib.pyplot as plt
a2 = np.asarray(a)/255.
aa = signal.medfilt2d(a2, 11)
plt.imshow(aa)
plt.show()
Возьмите определенный c канал (R / G / B)
import glob
import cv2
from scipy import signal
import numpy as np
a = cv2.imread(glob.glob('lp_train/*.jpg')[0])
import matplotlib.pyplot as plt
a2 = np.asarray(a)/255.
aa = signal.medfilt2d(a2[:,:,0], 11) # a specific channel
plt.imshow(aa)
plt.show()
Оба должны работать.