0

我使用 VS2010 和 .Net FW 4.0 用 C# 编写了以下代码:

        AForge.Imaging.Filters.ColorFiltering f1 = new AForge.Imaging.Filters.ColorFiltering();
        f1.FillColor.Color = Color.White ;
        f1.Red = new AForge.IntRange(0, 127);
        f1.Green = new AForge.IntRange(0, 255);
        f1.Blue = new AForge.IntRange(0, 192);
        f1.FillOutsideRange = true;
        f1.ApplyInPlace(bmp);

当我使用特定图像执行此代码时,它给出的结果与在 IP Lab 应用程序中使用相同参数和相同图像执行颜色过滤时产生的结果大不相同。

在 IPLab 中,我得到的图像主要是白色的。在 VS2010 中,我得到的图像主要是黑色的。当我在 VS 中将 FillOutsideRange 更改为 false 时,我得到的图像几乎没有改变。

我正在处理的图像是以下 PixelFormat:Format24bppRgb。

我究竟做错了什么???

4

1 回答 1

0

答案是我必须按如下方式分配 FillColor:

 AForge.Imaging.RGB c = new AForge.Imaging.RGB(255, 255, 255);
 f1.FillColor = c;

显然 C# 中的 RGB 与 AForge 中的 RGB 不同。

于 2013-07-31T18:56:56.863 回答