Чтобы увеличить глубину тиснения фильтра, увеличьте радиус маски фильтра. Малая глубина:
h = [[1, 0, 0]
[0, 0, 0]
[0, 0, -1]]
против большой глубины:
h = [[1, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, -1]]
Чтобы изменить азимут, поместите ненулевые коэффициенты под другим углом:
h = [[0, 0, 1]
[0, 0, 0]
[-1, 0, 0]]
Я не совсем уверен насчет высоты. Вам может понадобиться изменить ненулевые значения коэффициентов? Я просто знаю, что это должен быть фильтр верхних частот.
В любом случае для вычисления и отображения изображения с использованием решения Scipy:
import scipy.misc, scipy.signal
im = scipy.misc.imread(filename)
im_out = scipy.signal.convolve2d(im, h, 'same')
scipy.misc.imshow(im_out)
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: Хорошо, как Павел намекнул с PIL, вы можете настроить параметры фильтра или даже определить совершенно новое ядро. Параметры масштаба и смещения не имеют ничего общего с тем, что вы ищете. Размер фильтра наиболее важен для регулировки глубины.
При дальнейшем исследовании PIL не позволяет изменять размер фильтра выше 5x5. Кажется странным Следовательно, вы не получите столь резкого изменения глубины, как вы, вероятно, ожидаете.
Для полного контроля, вы можете попробовать решение Scipy, о котором я и Пол упоминали ранее. Измените размер фильтра на что-то смешное, например, 21x21, и посмотрите, имеет ли он тот тип разницы, который вы хотите.