如何在手写文字图像中提取图形

时间:2017-04-14 06:58:42

标签: matlab graph-theory

我已经将单手书面文字图像作为我程序的输入,我希望在调整大小后将该图像调整为100x100,然后将该图像划分为10x10的相等段,我希望找到该中心每个段中前景像素的质量。在我的程序中,我找到了前景像素的质心。在我试图实现的算法中,他们告诉我们使用质心作为节点将其添加到结果图中并添加基于边缘提取的添加边,如最小跨度 树(MST)。我的问题是我知道前景像素的质量中心我是使用图表存储在CXX和CYY矩阵中的x和y坐标的代码值(CXX,CYY,' g *') ;我正在密谋图像。但我不知道如何使用该质心作为节点将其添加到结果图中以及如何使用MST添加边。

这是我的输出图片: this is my output image

我希望将这些绘制的点用作结果图的节点,之后将这些点添加为我希望根据最小生成树添加边的节点。请帮助我如何将这些绘制点作为节点添加到结果图中,以及如何使用最小生成树向这些节点添加边。

clc;
clear all;
close all;
X=imread('math1.jpg');
imfinfo('math1.jpg')
figure,imshow(X)

b = imresize(X,[100,100]);
si = size(b,1);
sj = size(b,2);
%figure;imshow(b);

% Binarization
th = graythresh(b);
I = im2bw(b,th);

% w = 5;
% h = 5;
% c=si/w;
% r=sj/h;
kl=bwmorph(~I,'thin',inf);
%figure,imshow(kl)

R(:,:)=kl(:,:);
%grid size 
t1=5;
D=100;
 I=1;
U1=t1;
J=1;
U2=t1;
E=1;
t2=D/t1;
%Z=1;
for i=1:t2
    for j=1:t2
 B(I:U1,J:U2)=R(I:U1,J:U2);
 [x,y]=find(B==1);
 CX=mean(x);
 CY=mean(y);
 CXXX(E)=CX;
 CYYY(E)=CY;
 CXX(i,j)=CX;
 CYY(i,j)=CY;

 T(I:U1,J:U2)=B(I:U1,J:U2);
    J=J+t1;
  U2=U2+t1;
E=E+1;
 clear B x y 

    end

I=I+t1;
U1=U1+t1;
J=1;
  U2=t1;

end
%plot and grid
figure,imshow(R)
hold on
M = size(R,1);
N = size(R,2);

a=t1; 
b=t1;
for k = 1:a:M
    x = [1 N]; 
   y = [k k]; 
   plot(x,y,'Color','white');
   set(findobj('Tag','MyGrid'),'Visible','on')
end
for k = 1:b:N 
    x = [k k]; 
    y = [1 M];
    plot(x,y,'Color','white');
    set(findobj('Tag','MyGrid'),'Visible','on')
end

plot(CYY,CXX,'c*')

这是我的输入图片请尝试运行此代码。

我的输入图片 input image

0 个答案:

没有答案