我正在做一个提取车牌字符的项目。我用MSER开发了一种对复杂背景的车牌进行字符分割的方法,效果良好。问题是,在某些情况下,如下图所示,车牌的边框(车牌持有人)连接或占据了字符的一部分。由于具有几乎相同的颜色,因此字符和边框作为单个对象出现。从帧中提取这些字符是不可能的,所以我无法检测字符。
我环顾了一下车牌的“水平投影”是否可以产生有用的东西,但似乎在应用它之前,它也需要一个好的倾斜校正算法,这可能不是处理这个问题的最佳解决方案,需要一系列新的算法。因此,我想在这里问一下,是否存在这样一种好的方法,并且您给我指出了正确的方法。
提前谢谢。
(注:为了保护隐私,我模糊了一部分车牌。图像质量不能令人满意,但我认为这足以理解问题)
发布于 2016-10-18 20:40:11
在分割字符之前,您可以尝试使用逻辑掩码限制感兴趣的区域。让我们用凸壳做一个,它们真的很通用:
使用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
结果:
汽车专家们让我们的生活变得更加艰难。但这应该更容易管理,特别是如果你摆弄灰度权重,二值化和过滤。
https://stackoverflow.com/questions/40107863
复制相似问题