Ich arbeite an Text-Extraktionsformular Bild. Dazu benutze ich die Kantendetektionstechnik. Ich habe Kanten eines Bildes mit Text- oder Nicht-Textbereichen erkannt.
Jetzt möchte ich die Nicht-Text-Region aus dem Bild entfernen.
Bitte sagen Sie mir, wie kann ich das tun?Wie werden die Nicht-Text-Bereiche des folgenden Bildes eliminiert?
Der Code, den ich bisher habe, ist:
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
Was genau ist die gewünschte Ausgabe? Ist es ein Bild, bei dem ein Pixel, das nicht in ein rotes Quadrat fällt, weiß/schwarz/'NaN' ist? Oder möchten Sie vielleicht ein Zell-Array mit Bildern erhalten, bei dem jedes Bild ein anderes rot-quadratisches Gehäuse hat? Bitte erläutern Sie, was Sie mit "eliminieren" meinen. –
Ich möchte zwischen Textbereichsboxen und Nicht-Textbereichsboxen unterscheiden. Und dann extrahiere Text aus roten Kästchen. –