替换图像中的特定颜色像素

时间:2014-02-12 07:58:48

标签: c# image

我在C#中通过网络摄像头拍摄的图像很少。我想对这些图像进行一些处理。我想删除非黑色图像中的像素。

请告诉我如何删除不是黑色的像素或区域,并将其替换为白色。

示例:

enter image description here

我希望将其转换为:

enter image description here

3 个答案:

答案 0 :(得分:2)

尝试使用 Emgu CV (.NET中的OpenCV),特别参见License Plate Recognition in CSharp示例。

答案 1 :(得分:1)

最简单的方法可能是检查每个像素并验证它是否处于“可接受”的颜色范围内。

例如:

var YourImage = (Bitmap)Image.FromFile("LicensePlate.png");

for (var x = 0; x < YourImage.Width; x++)
   for (var y = 0; y < YourImage.Height; y++) {
       var pixel = YourImage.GetPixel(x, y);
       if (pixel.r > 200 && pixel.g > 200 && pixel.b > 200)
                YourImage.SetPixel(x, y, Color.White);
   }

以上代码将用白色像素替换非黑色区域。

答案 2 :(得分:0)

OpenCV的EmguCV包装器是一个良好的开端,车牌应该能够帮助您完成大多数情况。如果你想要更强大的东西(照明变化),我建议你添加狼的二值化。我不知道它是否在EmguCV中实现,但http://liris.cnrs.fr/christian.wolf/software/binarize/有可用的c ++代码 使用EmguCV很容易适应c#。