|
楼主 |
发表于 2014-2-5 02:20:00
|
显示全部楼层
测试图片生成代码(matlab)
clc
clear all
close all
%% 切分文字图片
I=imread('C:\Program Files\MATLAB\R2010b\1.bmp');% 任意颜色m*n文字做成bmp图片,文字列数大于len,choice可取【行数/4】
I=rgb2gray(I);
I=double(I)/255;
col=find(all(I,1)~=1);%全空白列
row=find(all(I,2)~=1);%全空白行
youkong=intersect(col,setdiff(col,col-1));
zuokong=intersect(col,setdiff(col,col+1));
l2=floor(mean(youkong-zuokong));%文字宽度(像素)
shangkong=intersect(row,setdiff(row,row+1));
xiakong=intersect(row,setdiff(row,row-1));
l1=floor(mean(xiakong-shangkong));%文字高度
for r=1:length(shangkong)
for c=1:length(zuokong)
patch{r,c}=I(shangkong(r)+1:shangkong(r)+l1,zuokong(c)+1:zuokong(c)+l2);%切
end
end
or=r;
%imshow(patch{1,5})
clear c
%% 生成测试图片
for l=1r-4
choice=l;%用于随机选择原始图片文字行
len=6;%文字数量
r(1)=15;
for n=1:len
r(n+1)=r(n)*1.2;%邻字放大倍数
end
r=floor(r);%各字半径
ssiz=repmat(sum(r*4),[1,2]);%背景矩阵大小
center=ssiz/2;%中心坐标
%color=[0,0,0];
%circle2d(center(1),center(2),r(1),color);
b=0;%离心距离
M=zeros(ssiz(1));
for m=2:length(r);
b=b+r(m-1)+r(m);%当前离心聚类
c(1,=center+[0,b];%各字中心
c(2,=center+[0,-b];
c(3,=center+[b,0];
c(4,=center+[-b,0];
hold on
for n=1:4
It=imresize(patch{n+choice,m},[2*r(m)+1,2*r(m)+1]);%当前字图片
%circle2d(c(n,1),c(n,2),r(m),color);
M((c(n,1)-r(m))c(n,1)+r(m)),(c(n,2)-r(m))c(n,2)+r(m)))=It;%字入图
end
end
hold off
figure
imshow(M)
end
|
|