我在C#中通过网络摄像头拍摄的图像很少。我想对这些图像进行一些处理。我想删除非黑色图像中的像素。
请告诉我如何删除不是黑色的像素或区域,并将其替换为白色。
示例:
我希望将其转换为:
答案 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#。