【问题标题】:Remove unwanted white pixels for plate segmentation Matlab去除不需要的白色像素以进行板分割 Matlab
【发布时间】:2015-06-23 23:43:27
【问题描述】:

我将在这个项目中使用的空间分辨率图像是 1000x563。我在此步骤中的目标是删除所有不需要的白色像素,但不删除车牌,以便我可以准确地分割车牌。但问题是我无法清楚地删除那些不需要的像素。有人可以帮我改进代码吗?

来自: 然后, 然后, 最后,

当您观察最后一张图像时,仍然有很多不需要的白色像素。请帮忙 !!

ab=imread('image4.jpg');
ab=rgb2gray(ab);
level=graythresh(ab);
 ab=im2bw(ab,level);

ab=medfilt2(ab,[3 3]);


ab=edge(ab,'Canny');
figure(); imshow(ab);

Tmp = imfill(ab, 'holes'); %flood filling techniques
Tmp2 = imfill(Tmp-ab, 'holes'); 
Res = Tmp - imfill(ab & Tmp2, 'holes');
figure(); imshow(Res,[]); 


% keeping the white pixels area between 200 to 1000
LB = 200;        
UB = 1000;
Res = xor(bwareaopen(Res,LB),  bwareaopen(Res,UB));
figure, imshow(Res,[]);


se = strel('disk',2);        
Res = imerode(Res,se);
Res=imdilate(Res,se);


Res = bwareaopen(Res, 200);

figure();
imshow(Res,[]);

【问题讨论】:

    标签: algorithm matlab image-processing image-segmentation binary-image


    【解决方案1】:

    您图片中的车牌尺寸是否始终相同(至少大致相同)?
    如果是这样,您可以查看一些固定大小的像素块,可能与其他像素有一些重叠,如果白色像素的数量高于某个阈值,请留下它们,否则将它们涂成黑色。
    或者只是标记它们,如果周围的补丁也需要清洁,请将它们涂成黑色。

    【讨论】:

    • 是的,大小差不多。您能否进一步强调您的解释..?
    【解决方案2】:

    您可能需要考虑使用Stroke Width Transform。可以在here 找到一个 Matlab 实现。 此变换用于检测自然图像中的文本。它旨在在比您更具挑战性的环境中工作。所以,我想你应该试一试。

    【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2021-11-05
    • 2016-06-02
    • 2017-07-01
    • 2012-12-09
    相关资源
    最近更新 更多