翻译这串代码:Rer=1; sr=strel('disk',6); C=imclose(U,sr); L=bwlabel(C); B=regionprops(L,'area'); Se=[B.Area]; Sm=max(Se); if Sm>m*n/27 B1=bwareaopen(C,Sm); k_y1=m;k2=m;l2=n; for i=1:m if any(B1(i,:))==1 k_y1=i; break end end for i=k_y1:m if B1(i,:)==0 k2=i; break end end for j=1:n if any(B1(:,j))==1 l_y1=j; break end end for j=l_y1:n if B1(:,j)==0 l2=j; break end end k_y=k2-k_y1; l=l2-l_y1; if k_y>.5*l&&k_y<3*l I1=imcrop(B1,[l_y1 k_y1 l .4*k_y]); [n1 m1]=size(I1); L1=bwlabel(I1); E=regionprops(L1,'area'); Si=[E.Area]; Sm=max(Si); if Sm/(n1*m1)>.3 B2=bwareaopen(I1,floor(.5*Sm)); g_y1=m1; g2=m1; for j=1:m1 if any(B2(:,j))==1 g_y1=j; break end end for j=g_y1:m1 if B2(:,j)==0 g2=j; break end end g=g2-g_y1; figure; imshow(I,'border','tight','InitialMagnification','fit'); hold on h1=line([l_y1+g_y1,l_y1+g_y1+g],[k_y1,k_y1]); h2=line([l_y1+g_y1+g,l_y1+g_y1+g],[k_y1,k_y1+1.1*g]); h3=line([l_y1+g_y1+g,l_y1+g_y1],[k_y1+1.1*g,k_y1+1.1*g]); h4=line([l_y1+g_y1,l_y1+g_y1],[k_y1+1.1*g,k_y1]); h=[h1 h2 h3 h4]; set(h,'Color',[1 0 0],'LineWidth',3); gfframe=getframe(gcf); gffim=frame2im(gfframe); imwrite(gffim,'recg_result.jpg','jpg'); Rer=1; %fid=fopen('re.txt','w'); %fprintf(fid,'%d',Rer); %fclose(fid); else figure;
时间: 2023-03-30 07:04:37 浏览: 123
Rer=1; //将Rer赋值为1
sr=strel('disk',6); //创建一个半径为6的圆形结构元素
C=imclose(U,sr); //对图像U进行闭运算,得到二值图像C
L=bwlabel(C); //对C进行连通域标记,得到标记矩阵L
B=regionprops(L,'area'); //获取L中每个连通域的面积,存储在结构体数组B中
Se=[B.Area]; //将B中的面积提取出来,存储在Se中
Sm=max(Se); //获取Se中的最大值,存储在Sm中
if Sm>m*n/27 //如果Sm大于m*n/27
B1=bwareaopen(C,Sm); //对C进行面积开运算,得到二值图像B1
k_y1=m;k2=m;l2=n; //将k_y1、k2、l2赋值为m
for i=1:m //从第1行开始循环到第m行
if any(B1(i,:))==1 //如果第i行中有像素值为1的元素
k_y1=i; //将k_y1赋值为i
break //跳出循环
end
end
for i=k_y1:m //从第k_y1行开始循环到第m行
if B1(i,:)== //如果第i行中所有元素的像素值都为
k2=i; //将k2赋值为i
break //跳出循环
end
end
for j=1:n //从第1列开始循环到第n列
if any(B1(:,j))==1 //如果第j列中有像素值为1的元素
l_y1=j; //将l_y1赋值为j
break //跳出循环
end
end
for j=l_y1:n //从第l_y1列开始循环到第n列
if B1(:,j)== //如果第j列中所有元素的像素值都为
l2=j; //将l2赋值为j
break //跳出循环
end
end
k_y=k2-k_y1; //计算k_y
l=l2-l_y1; //计算l
if k_y>.5*l //如果k_y大于.5*l
//执行一些操作
end
end
阅读全文