我写了一个C ++代码,对彩色或灰度图像(ppm文件)进行边缘检测。
我的代码运行良好,但不如特定的Gimp插件好,尤其是在检测到更多模糊边缘(低亮度梯度)时。我指的插件位于Gimp 2.10.8的 Filters / Edge-Detect / Image Gradient 下。鼠标悬停说“通过中心差异计算梯度大小和/或方向”。
下面,我嵌入了一张灰色测试图像以比较结果(即渐变强度),尽管我的作品也是彩色的。测试图像由13个具有不同亮度的圆环组成(每个圆环恒定)。在相邻的两个环之间的光度差在径向向外方向上从2个光度单位(对于内环)增加到30个光度单位(对于外环)。
如预期的那样,检测到的梯度对于内环来说很小,而对于外环来说更高。问题是,我的C ++代码对小梯度的敏感性不及Gimp插件,如下面的其他两幅图所示。
我在哪里可以找到 Gimp Image Gradient插件的代码,以便从中学到一些东西?我对其他用于边缘检测的Gimp插件不感兴趣(我证实它们至少不如Image Gradient出色,至少对于我的应用程序来说是 )。