2

我正在尝试学习 Aforge.net。我写了代码,它工作正常,但我想在我的图像上检测到紫色,但我不知道它是怎么回事。所以任何人都可以帮助我吗?这是我的代码

Bitmap resim = new Bitmap(pictureBox1.Image);

EuclideanColorFiltering filter = new EuclideanColorFiltering();
// set center color and radius
filter.CenterColor = new RGB(80,90,120);
filter.Radius = 40;
// apply the filter
filter.ApplyInPlace(resim);

pictureBox1.Image = resim;

还有我的源图片

在我的过滤器之后是这个

那么在这张图片中,我可以做些什么来选择没有其他东西的紫色数字或只选择紫色的东西?

4

1 回答 1

2

我建议您使用 HSLFilter,以获得更好的颜色过滤

HSLFiltering filter = new HSLFiltering();
filter.Saturation = new Range(0.05f, 1f);
filter.Luminance = new Range(0.05f, 0.70f);
filter.Hue = new IntRange(280, 340); //these settings should works, if not
Bitmap red = filter.Apply(image);   //search "HSL color picker online" to tune it

在颜色过滤步骤之后,您可以继续进行斑点过滤步骤。

过滤每个 blob:

 1. Have a Width more than 20%(example) of the Image.Width (for the height too)
 2. Have a too much/too poor fullness (blob.fullness)
 3. Have a not good ratio Width/Height

最后你应该只有数字或至少只有1-2个斑点

于 2013-06-04T16:28:11.870 回答