我知道如何做一个图像过滤器,比如每像素 1 个字节的 sobel 过滤器。但是,如果您想在每像素 24 位的 RGB 图像上执行此操作,我不知道该怎么做。
无需将RGB图像转换为8位图像(灰度(的最佳方法是什么?
对于 Sobel 运算符,与所有其他线性滤波器一样,可以将滤波器独立地应用于每个通道。也就是说,输出红色通道是滤波后的输入红色通道,依此类推。
请注意,这仅适用于线性滤波器。对于任何非线性滤波器,这样的过程都会导致假色。
-
对于每个颜色通道,通过应用 Sobel 运算符并除以 8 来计算梯度幅度(导数(。
-
除非您对色盲执行此操作,否则每个颜色通道中的渐变(及其边缘(都很重要。您可以将这些梯度幅度矩阵合并到一个矩阵中,保持最高幅度。