2013高教社杯数模B题(7)

2019-04-09 18:23

附录4.8

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 计算每一个中文子图中心点的位置,1个子图最多3个有效字 % 参数:

% data 图像RGB数据 % 返回值:

% arr 每一个子图有效字的中心点位置

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function arr = calCircle(data)

%记录每一个图片的黑色 ud = zeros(209,180) ;

%结果,因为一个子图最多有3个 arr = zeros(209,3);

%按行遍历,记录每一行是否有黑色 for i = 1:209 for x = 1:180 for y = 1:72

if data{i}(x,y) ~= 255 %当前行有黑色 ud(i,x) = 1; break; end end end end

%记录超过36个像素的字的中心位置,存入数组 for num = 1:209 co = 0; count = 0; for i = 1:179

%如果连续小于36则清零

if count < 36 && ud(num,i+1) ~= 1 count = 0; end

%大于36则记录中心位置

if count >= 36 && ud(num,i+1) ~= 1 co = co+1;

arr(num,co) = i - count/2; count = 0; end

%如果连续则计数器+1

if ud(num,i) == 1 && ud(num,i+1) == 1 count = count + 1; end

29

end end

附录4.9

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 计算每一个英文子图中英文所在四线三格中间格子的位置 % 参数:

% data 图像RGB数据 % 返回值:

% arr 每一个子图英文所在四线三格中间格子的位置 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function arr = calEngCircle(data)

%记录每一个图片的黑色 ud = zeros(209,180) ;

%结果,因为一个子图最多有3个英文字符 arr = zeros(209,3);

%按行遍历,记录每一行是否有黑色 for i = 1:209 for x = 1:180 count = 0; for y = 1:72

if data{i}(x,y) ~= 255 %当前行有黑色 count = count + 1; end end

ud(i,x) = count; end end

%记录超过36个像素的字的中心位置,存入数组 for num = 1:209

co = 0; %记录第几个字母 count = 0; %记录黑色个数 sum = 0;

for i = 1:179

if ud(num,i) > 12 && ud(num,i+1) > 12 sum = sum + ud(num,i); count = count + 1; end

%遇到23个以上黑色的时候

if ud(num,i+1) <= 12 && count >= 23 %记录

co = co + 1;

arr(num,co) = i - count / 2;

%清零

30

sum = 0; count = 0; end

%如果下一个为白色且没有连续23个黑色,则清零 if ud(num,i+1) <= 12 && count < 23 sum = 0; count = 0; end end

if co == 0 ud(num,:) end end

附件4.10

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 已知最左列的情况下求同一行的数据 % 参数:

% data 图像RGB数据

% arr 子图像的中心点数组

% leftArray 最左列的坐标 1x11的数组 % 返回值

% Array 返回无序的行

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function Array = sameRow(data,arr,leftArray)

%控制变量 n1= 0; n2= 0; n3= 0; n4= 0; n5= 0; n6= 0; n7= 0; n8= 0; n9= 0; n10= 0; n11= 0;

%使每一行的每一个分别减最左列的,如果相差小于3,则代表是同一行 for i = 1:209 flag = 0; for j = 1:3 for k = 1:3

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(1),k))<3 || (n1> 1 && abs(arr(i,j) - arr(Array(1,n1),k))<3))

31

n1 = n1 + 1; Array(1,n1) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(2),k))<3 || (n2> 1 && abs(arr(i,j) - arr(Array(2,n2),k))<3)) n2 = n2 + 1; Array(2,n2) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(3),k))<3 || (n3> 1 && abs(arr(i,j) - arr(Array(3,n3),k))<3)) n3 = n3 + 1; Array(3,n3) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(4),k))<3 || (n4> 1 && abs(arr(i,j) - arr(Array(4,n4),k))<3)) n4 = n4 + 1; Array(4,n4) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(5),k))<3 || (n5> 1 && abs(arr(i,j) - arr(Array(5,n5),k))<3)) n5 = n5 + 1; Array(5,n5) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(6),k))<3 || (n6> 1 && abs(arr(i,j) - arr(Array(6,n6),k))<3)) n6 = n6 + 1; Array(6,n6) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(7),k))<3|| (n7> 1 && abs(arr(i,j) - arr(Array(7,n7),k))<3)) n7 = n7 + 1; Array(7,n7) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(8),k))<3 || (n8> 1 && abs(arr(i,j) - arr(Array(8,n8),k))<3)) n8 = n8 + 1;

32

Array(8,n8) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(9),k))<3 || (n9> 1 && abs(arr(i,j) - arr(Array(9,n9),k))<3)) n9 = n9 + 1; Array(9,n9) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(10),k))<3 || (n10> 1 && abs(arr(i,j) - arr(Array(10,n10),k))<3)) n10 = n10 + 1; Array(10,n10) = i; flag = 1; break; end

if arr(i,j)~= 0 && (abs(arr(i,j) - arr(leftArray(11),k))<3 || (n11> 1 && abs(arr(i,j) - arr(Array(11,n11),k))<3)) n11 = n11 + 1; Array(11,n11) = i; flag = 1; break; end end

if flag == 1 break; end end end

附件4.11

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 根据左右方向的最佳匹配顺序输出备选图像供人工干预 % 提供的图像编号从1开始 % 参数:

% data 图像RGB数据 % l 向左的最佳匹配 % r 向右的最佳匹配

% num 待输出的图像编号,从1开始

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function DrawH(data,l,r,num)

l1 = [data{l{num}(209)},data{num}]; l2 = [data{l{num}(208)},data{num}]; l3 = [data{l{num}(207)},data{num}];

r1 = [data{num},data{r{num}(209)}]; r2 = [data{num},data{r{num}(208)}];

33

r3 = [data{num},data{r{num}(207)}];

subplot(2,3,1),imshow(l1),title(l{num}(209)); subplot(2,3,2),imshow(l2),title(l{num}(208)); subplot(2,3,3),imshow(l3),title(l{num}(207)) subplot(2,3,4),imshow(r1),title(r{num}(209)) subplot(2,3,5),imshow(r2),title(r{num}(208)) subplot(2,3,6),imshow(r3),title(r{num}(207))

附件4.12

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 根据上下方向的最佳匹配顺序输出备选图像供人工干预 % 提供的图像编号从1开始 % 参数:

% data 图像RGB数据 % u 向上的最佳匹配 % d 向下的最佳匹配

% num 待输出的图像编号,从1开始

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function DrawV(data,u,d,num)

u1 = [data{u{num}(209)};data{num}]; u2 = [data{u{num}(208)};data{num}]; u3 = [data{u{num}(207)};data{num}];

d1 = [data{num};data{d{num}(209)}]; d2 = [data{num};data{d{num}(208)}]; d3 = [data{num};data{d{num}(207)}];

subplot(1,6,1),imshow(u1),title(u{num}(209)) subplot(1,6,2),imshow(u2),title(u{num}(208)) subplot(1,6,3),imshow(u3),title(u{num}(207)) subplot(1,6,4),imshow(d1),title(d{num}(209)) subplot(1,6,5),imshow(d2),title(d{num}(208)) subplot(1,6,6),imshow(d3),title(d{num}(207))

34


2013高教社杯数模B题(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省建筑施工安全管理资料统一用表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: