Я пытаюсь выполнить 2-ю свертку в Python с помощью numpy
У меня есть 2-й массив следующим образом с ядром H_r для строк и H_c для столбцов
data = np.zeros((nr, nc), dtype=np.float32)
#fill array with some data here then convolve
for r in range(nr):
data[r,:] = np.convolve(data[r,:], H_r, 'same')
for c in range(nc):
data[:,c] = np.convolve(data[:,c], H_c, 'same')
data = data.astype(np.uint8);
Это не производит вывод, который я ожидал, делает этот взгляд кода хорошо, я думаю, что проблема с кастингом от float32 до 8 битов. Что лучший способ состоит в том, чтобы сделать это
Спасибо
Поскольку у вас уже есть ядро, вы должны просто использовать функцию sepfir2d из scipy:
from scipy.signal import sepfir2d
convolved = sepfir2d(data, H_r, H_c)
С другой стороны, код, который у вас есть, выглядит нормально ...