在C#中,我很少有通过摄像头捕捉到的图片。我想对这些图像做一些处理。我想要删除像素的图像,但不是黑色。
请告诉我如何删除像素或区域的黑色,并替换为白色。
示例:

我想把它转化成:

发布于 2014-02-12 08:02:34
最简单的方法可能是检查每个像素,并验证它是否在“接受”的颜色范围内。
例如:
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);
}以上代码将用白色像素替换非黑色区域。
发布于 2014-02-12 08:02:24
尝试使用http://www.emgu.com/wiki/index.php/Main_Page (OpenCV in .NET),特别是参见CSharp中的车牌识别示例。
发布于 2014-02-12 12:05:21
EmguCV wraper for OpenCV是一个很好的开端,牌照应该可以帮助您通过大多数情况。如果你想要更健壮的东西(光照的变化),我建议你增加狼的二值化。我不知道它是否是用EmguCV实现的,但是http://liris.cnrs.fr/christian.wolf/software/binarize/有c++代码,可以很容易地使用EmguCV来适应c#。
https://stackoverflow.com/questions/21721891
复制相似问题