来自scipy的RGB图像卷积

时间:2019-05-12 12:05:48

标签: python image scipy

我正在尝试使用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图像,它返回混乱。我怀疑可能会发生一些溢出现象,但是我不确定。这是图片:

原始图片:

enter image description here

执行highligh_edges函数后:

enter image description here

1 个答案:

答案 0 :(得分:0)

有点晚了,但是我认为对图像进行归一化可以解决它。在应用卷积之前,请尝试将图像除以255。否则,我们可以实际测试的功能会更好...