1

画像からテキストを検出するために、この matlab コード (以下を参照) を作成しました。このコードは画像からテキストを検出していますが、画像から検出された文字ごとに出力画像を作成したいと考えています。どうすればそれができるか教えてください。

コード:

i = imread('text.png');
i1 = 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 92]);
imshow(i);

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

1 に答える 1

1

'Image'次のプロパティを参照してくださいregionprops

Ipops = regionprops(Ilabel, 'Image');

PS、
呼び出すときregionpropsは、要求されたプロパティを明示的に定義することをお勧めします。そうしないと、必要のないものも含めて、すべてのプロパティを計算するリソースが無駄になります。
たとえば、コードは次のようになります

Iprops = regionprops(Ilabel, 'BoundingBox');
Ibox = vertcat(Iprops.BoundingBox);  % no need for "reshape" here...
于 2016-11-21T06:58:39.723 に答える