我正在开发一个提取车牌字符的项目。我已经开发了一种MSER方法来分割具有复杂背景的车牌字符并且效果很好。问题是,在某些情况下如下所示,车牌的车架(车牌架)连接或占据了一部分人物。通过具有几乎相同的颜色,字符和框架作为单个对象。从帧中提取这些字符是不可能的,因此我无法检测到字符。
我环顾四周看看牌照的“水平投影”是否会产生一些有用的东西,但似乎在应用它之前还需要一个好的偏斜校正算法,这可能不是通过需要一系列新的来解决这个问题的最佳解决方案算法。因此,我想在这里询问是否存在这样一种好方法,并指出了正确的方法。
提前致谢。
(ps:为了保护隐私,我模仿了车牌的一部分。图像质量不满意,但我认为这足以理解这个问题)
答案 0 :(得分:1)
您可以尝试在分割字符之前使用逻辑掩码限制感兴趣的区域。让我们制作一个带有凸包的船体,它们真的是多功能的:
使用Matlab 2016b:
Plate = imread(Plate.jpg);
grayPlate = rgb2gray(Plate); % rgb -> grayscale
bwPlate = imbinarize(grayPlate); % binarize, Otsu's method.
bwPlate = imopen(bwPlate, strel('disk', 4));
% Morphological opening, removes small white areas. These bloat the convex
% hull if let through.
convPlate = bwconvhull(bwPlate);
for i=1:3 %Apply the logical mask
tempPlate = Plate(:,:,i);
tempPlate(~convPlate) = 255;
Plate(:,:,i) = tempPlate;
end
结果:
汽车专业人士让我们的生活变得更加艰难。但这应该更容易管理,特别是如果你摆弄灰度权重,二值化和过滤。