2

このプロジェクトで使用する空間解像度の画像は 1000x563 です。このステップの目的は、ナンバー プレートではなく不要な白いピクセルをすべて削除して、プレートを正確にセグメント化できるようにすることです。しかし、問題は、これらの不要なピクセルを明確に削除できなかったことです。コードを改善するのを手伝ってくれる人はいますか?

From: ここに画像の説明を入力 それから、 ここに画像の説明を入力 それから、 ここに画像の説明を入力 最後に、 ここに画像の説明を入力

最後の画像を観察したように、まだかなりの数の不要な白いピクセルがあります。助けてください !!

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,[]);
4

2 に答える 2

0

あなたの写真のナンバー プレートは常に同じサイズですか (少なくともほぼ同じサイズですか?)。
もしそうなら、いくつかの固定サイズのピクセルのパッチを見て、他のピクセルとオーバーラップしている可能性があります.白いピクセルの数がしきい値を超えている場合は、それらをそのままにし、そうでない場合は黒く塗りつぶします.
または、それらに印を付けて、周囲のパッチもクリーニングする場合は、それらを黒く塗ります。

于 2015-04-17T08:31:23.967 に答える