2016-04-20 14 views
2

私はテキスト抽出フォームの画像に取り組んでいます。このため私はエッジ検出技術を使用しています。私はテキストまたは非テキスト領域で画像のエッジを検出しました。
イメージから非テキスト領域を削除したいと考えています。
どうすればいいですか?次の画像の非テキスト領域を除去するにはどうすればよいですか?

私がこれまで持っているコードは次のとおりです。

i = imread('t1.jpg'); 
i1 = rgb2gray(i); 
imshow(i1); 

i2 = edge(i1,'canny',0.3); 
imshow(i2); 

se = strel('square',2); 
i3 = imdilate(i2,se); 
imshow(i3); 

i4 = imfill(i3,'holes'); 
imshow(i4); 

[Ilabel num] = bwlabel(i4); 
disp(num); 
Iprops = regionprops(Ilabel); 
Ibox = [Iprops.BoundingBox]; 
Ibox = reshape(Ibox,4,[]); 
imshow(i); 

hold on; 
for cnt = 1:size(Ibox,2) 
    rectangle('position',Ibox(:,cnt),'edgecolor','r'); 
end 

enter image description here

+0

希望する出力は正確には何ですか?それは、赤い四角形に収まらないピクセルが白黒/「NaN」の画像ですか?あるいは、それぞれの画像が異なる赤い四角いエンクロージャーである画像のセル配列を取得したいでしょうか?あなたが「排除する」という意味を説明してください。 –

+0

テキスト領域ボックスと非テキスト領域ボックスを区別したいと思います。赤いボックスからテキストを抽出する。 –

答えて

0

あなたがより多くの「テキスト」指向の方法を使用して検討するかもしれません。
"Stroke-Width Transform" (SWT)を使用したことがありますか? この変換フィルタは、エッジが通常はテキストの特性である固定幅の尾根の一部である可能性に応じてエッジを合わせます。