gpt4 book ai didi

c++ - 使用高斯模糊和 Sobel 算子保留颜色

转载 作者:行者123 更新时间:2023-11-28 05:04:30 34 4
gpt4 key购买 nike

我想在图像上使用高斯模糊作为使用 sobel 边缘检测过滤器的预处理步骤。

我以前在灰度图像上有效地实现了 sobel 和高斯模糊运算符,但是,我从未尝试过在彩色图像上使用它们。

之前,我一直采用像素数据的红色分量,因为 RGB 在灰度中都是相同的。

我是否需要先将 RGB 图像转换为灰度图像?

如果不是,我如何将所有 3 个颜色 channel 与每个运算符的内核一起使用?

最佳答案

您可以将线性滤镜独立应用于每个颜色 channel 。高斯模糊和 Sobel 算子是线性滤波器。通常将三个 channel 分离为三个灰度值图像,并分别进行过滤,然后将三个结果合成为一个新的RGB图像。但是,如果您的软件允许在多 channel 图像上应用卷积,则您无需手动执行此过程。

请注意,应用高斯模糊然后使用 Sobel 算子来确定梯度是次优的。您最好使用高斯导数直接计算梯度。 Here is an old blog post of mine that describes Gaussian derivatives .简而言之,应用具有高斯导数的卷积(您可以通过分析和采样确定)产生平滑图像的精确导数。请注意,高斯是可分离的(它的导数也是可分离的),这意味着二维卷积可以作为两个一维卷积应用,从而节省大量计算。

关于c++ - 使用高斯模糊和 Sobel 算子保留颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45157153/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com