Matlab 如何消除后续图像的非文本区域?

Matlab 如何消除后续图像的非文本区域?,matlab,image-processing,ocr,image-segmentation,Matlab,Image Processing,Ocr,Image Segmentation,我正在从图像中提取文本。为此,我使用边缘检测技术。我检测到带有文本或非文本区域的图像边缘。 现在我想消除图像中的非文本区域。 请告诉我怎么做 到目前为止,我掌握的代码是: 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(

我正在从图像中提取文本。为此,我使用边缘检测技术。我检测到带有文本或非文本区域的图像边缘。
现在我想消除图像中的非文本区域。
请告诉我怎么做

到目前为止,我掌握的代码是:

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

< P>你可以考虑使用一种更“面向文本”的方法。 你考虑过使用吗?
这种变换是根据边缘是固定宽度的一部分的可能性来过滤的,这通常是文本的一个特征。

< P>您可以考虑使用一种更“面向文本”的方法。 你考虑过使用吗?
此转换根据边缘可能是固定宽度脊线的一部分(通常是文本的特征)来过滤边缘。

所需的输出是什么?它是不是一个不在红方块内的像素都是白/黑/
NaN
?或者,您是否希望获得一个图像单元阵列,其中每个图像都是一个不同的红色方形外壳?请解释一下“消除”是什么意思。我想区分文本区域框和非文本区域框。然后从红色框中提取文本。所需的输出是什么?它是不是一个不在红方块内的像素都是白/黑/
NaN
?或者,您是否希望获得一个图像单元阵列,其中每个图像都是一个不同的红色方形外壳?请解释一下“消除”是什么意思。我想区分文本区域框和非文本区域框。然后从红色框中提取文本。