Gimp 2.10.8 中图像渐变插件的代码

code for Image Gradient plugin in Gimp 2.10.8

我编写了一个 C++ 代码,用于对彩色或灰色图像(ppm 文件)执行边缘检测。

我的代码运行良好,但不如特定的 Gimp 插件好,尤其是在检测更模糊的边缘(低亮度梯度)时。我指的插件在 Gimp 2.10.8 中的 Filters/Edge-Detect/Image Gradient 下。鼠标悬停显示 "Compute gradient magnitude and/or direction by central differences"。

下面我嵌入了一个灰色测试图像来比较结果(即渐变强度),尽管我的作品也是彩色的。测试图像由大约 13 个具有不同光度的圆环组成(每个环都是恒定的)。两个相邻环之间的光度差在向外径向方向上从 2 个光度单位(对于内环)增加到 30 个光度单位(对于外环)。

不出所料,检测到的内环梯度较小,外环梯度较高。问题是我的 C++ 代码对小梯度的敏感度低于 Gimp 插件,如下面的其他两张图片所示。

我在哪里可以找到Gimp Image Gradient 插件的代码,以便我可以从中学到一些东西?我对其他用于边缘检测的 Gimp 插件不感兴趣(我证实它们不如图像渐变好,至少对于我的应用程序)。

它在GEGL package

文件是 operations/common/image-gradient.c