我正在尝试使用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图像,它返回混乱。我怀疑可能会发生一些溢出现象,但是我不确定。这是图片:
原始图片:
执行highligh_edges函数后:
答案 0 :(得分:0)
有点晚了,但是我认为对图像进行归一化可以解决它。在应用卷积之前,请尝试将图像除以255。否则,我们可以实际测试的功能会更好...