(C#,EmguCV) 我已经为黑色背景白色前景板许可证编号开发了anpr。但是我堆叠红色背景板。我使用灰度和otsu阈值和轮廓形态等预处理来检测字符。但对于红板,阈值的结果是白色区域(图2),因此错过了角色。有帮助吗?
答案 0 :(得分:1)
不知道你正在使用的是什么软件/硬件,但只是一个:当你通过另一个原色滤镜(比如绿色)看红色时,它会向右黑色,而白色文本会变成绿色。 (通过绿色滤镜的黑色也保持黑色,白色文字再次变为绿色。)
答案 1 :(得分:0)
由于您正在收集候选人,请尝试将图像分割为其图层,以便获得红色,绿色和蓝色的灰度图像。在红色图像上,盘子应该是完全白色的(因为它是灰度图像,红色越多它现在就越白)但在绿色和蓝色图像上,盘子应该是黑色或深绿色,白色数字和字符
与图像显示一样,蓝色和绿色只是满足您的需求,而红色则是一个白色矩形(usbale可以更快地检测候选者)
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
只需检查您的图片有多少个频道,然后检查每个频道。