Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 红色车牌号检测:阈值_C#_Opencv_Emgucv_Anpr - Fatal编程技术网

C# 红色车牌号检测:阈值

C# 红色车牌号检测:阈值,c#,opencv,emgucv,anpr,C#,Opencv,Emgucv,Anpr,(C#,EmguCV) 我已经为黑白背景的前景车牌号码开发了anpr。但我对红色背景板不感兴趣。im使用灰度和大津阈值等预处理以及轮廓形态学来检测字符。但对于红牌,阈值的结果是白色区域(图2),因此字符丢失。有什么帮助吗 不知道你在使用什么软件/硬件,但只是想一想:当你通过另一个原色滤光片(比如绿色)看到红色时,它会变成黑色,而白色文本会变成绿色。(同时,通过绿色过滤器的黑色保持为黑色,白色文本再次变为绿色。)由于您正在收集候选图像,请尝试将图像拆分为其层,这样您将获得一个红色、绿色和蓝色的灰度

(C#,EmguCV) 我已经为黑白背景的前景车牌号码开发了anpr。但我对红色背景板不感兴趣。im使用灰度和大津阈值等预处理以及轮廓形态学来检测字符。但对于红牌,阈值的结果是白色区域(图2),因此字符丢失。有什么帮助吗


不知道你在使用什么软件/硬件,但只是想一想:当你通过另一个原色滤光片(比如绿色)看到红色时,它会变成黑色,而白色文本会变成绿色。(同时,通过绿色过滤器的黑色保持为黑色,白色文本再次变为绿色。)

由于您正在收集候选图像,请尝试将图像拆分为其层,这样您将获得一个红色、绿色和蓝色的灰度图像。在红色图像上,图版应该是全白色的(因为它是灰度图像,红色越多,它现在变成的白色就越多),但在绿色和蓝色图像上,图版应该是黑色或深绿色,带有白色数字和字符

如图所示,蓝色和绿色正好符合您的需要,而红色则为白色矩形(用于更快地检测候选对象)

Mat和Image提供了一些很好的方法;它应该有助于:

Mat[] Split(); // from Mat
TDepth[,,] Data; // from Image<TColor, TDepth> or even better:
Image<Gray, TDepth>[] Split(); // from Image<TColor, TDepth> too
CvInvoke.EqualizeHist( inGray, betterGray); // would enhance images with low light
Mat[]Split();//从垫子上
t深度[,]数据;//从图像或更好的角度:
图像[]拆分();//也来自图像
CvInvoke.EqualizeHist(英格利,贝特格雷);//可以在光线较暗的情况下增强图像
只需检查您的图像有多少通道,并检查每一个通道