Я пытаюсь сделать функцию для выделения краев на изображении, используя свертку от scipy.signal.Вот мой код:
def highlight_edges(self):
window = np.array([[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]])
if self.image_data.ndim == 2:
# gray image
self.image_data = convolve2d(self.image_data, window, mode='same', boundary='symm')
elif self.image_data.shape[2] == 3:
# rgb image
# for each channel:
for i in range(3):
self.image_data[:, :, i] = convolve2d(self.image_data[:, :, i], window, mode='same', boundary='symm')
Он отлично работает для серого изображения, но для и RGB Image возвращает беспорядок.Я подозреваю, что может произойти переполнение, но я не совсем уверен.Вот изображения:
Исходное изображение:
![enter image description here](https://i.stack.imgur.com/y2iNt.jpg)
После выполнения функции highligh_edges:
![enter image description here](https://i.stack.imgur.com/ZAVcg.png)