图像校正及分割处理软件设计与实现模式识别与智能系统(编辑修改稿)内容摘要:
%求斜率 radian=atan(slope)。 %求角度 angle=radian*180/pi。 %转化成角度 jiaozheng=imrotate(cheque,angle)。 %图像校正 imshow(jiaozheng)。 close。 附录 一: ISODATA聚类 算法图像分割 代码 function isodata=isodata_zsy(I) %%%%%%%%%%%%%%%%%1..样本点为所有的像素点 %%%%%%%%%% %%%%%%%%%%%%%%% 2...聚类中心点的确定 %%%%%%%%%%%%%% figure(1)。 imshow(I,[]),title(39。 请选取预期聚类的中心点,完成后请按回车键或单击鼠标右键 39。 )。 [m,n]=size(I)。 k=4。 % k 用来记录预期聚类的数目这里假定为 4 c=k。 % c 来记录实际分类时的数目 hold on。 [p,q]=getpts。 %获取聚类中心,返回去类中心的坐标, p 存放第一个坐标点, q 存放第二个坐标点(数对) J=zeros(1,3*c)。 %。 for i=1:c f=round(q(i))。 %分为 c 类 J 来记录各类的中心像素值 ...(坐标和像素值) d=round(p(i))。 J(i)=I(f,d)。 end %disp(J)。 《 图像分析与模式识别 》课程 期末 大 作业 报告 姓名: 赵世瑜 学号 : 20xx204067 13 / 19 %%%%%%%%%%%%%%%%%3...将样本点分到各个聚类中心去 %%%%%%%%%%%%% max_gen=10。 %max_gen 最大迭代次数 w=1。 %while wmax_gen A=zeros(m,n)。 for i=1:m for j=1:n dis=[0,0,0,0]。 %用来记录样本点与每个聚类中心的距离 for x=1:4 dis(1,x)=(I(i,j)J(x))*(I(i,j)J(x))。 end %disp(dis)。 [min1,temp]=min(dis)。 A(i,j)=J(temp)。 end end %disp(A)。 %%%%%%%%%%%4....依据一个类中的最小聚类数判断是否舍去聚类点 %%%%%%%%%% sN=6。 %sN 一个聚类中至少含有的样本数目 count=zeros(1,3*c)。 %count 数组用来记录每个聚类中含有的样本数目 for i=1:m for j=1:n for x=1:c if A(i,j)==J(x) count(x)=count(x)+1。 end end end end for x=1:c1 if count(x)sN J(x)=J(x+1)。 count(x)=count(x+1)。 %类的数目减少一个 c=c1。 end end if count(x)sN count(x)=0。 《 图像分析与模式识别 》课程 期末 大 作业 报告 姓名: 赵世瑜 学号 : 20xx204067 14 / 19 c=c1。 end %%%%%%%%%%%5...更新聚类中心 %%%%%%%%%%%%%%%%%%%%%%%%%%% for x=1:c sum=0。 for i=1:m for j=1:n if A(i,j)==J(x) sum=sum+I(i,j)。 end end end J(x)=round((x)*sum*)。 %更新中心 end %%%%%%%%%%%%%%%6....各类的样本离开中心的平均距离 %%%%%%%%%%%% meandis=zeros(1,c)。 for x=1:c sum=0。 for i=1:m for j=1:n if A(i,j)==J(x) sum=sum+abs(I(i,j)J(x))。 end end end meandis(x)=(x)*sum。 end %%%%%%%%%%7...所有样本离开其相应的聚类中心的平均距离 %%%%%%%% g_meandis=0。 %g_meandis 记录平均距离 N=m*n。 for x=1:c g_meandis=g_meandis+count(x)* meandis(x)。 % end g_meandis=g_meandis/N。 %%%%%%%%%%%%8....决定是走向合并还是分裂 %%%%%%%%%%%% sC=。 %sC 为合并参数 if w==max_gen1 %如果这是最后一次迭代置合并参数为 0 sC=0。 end 《 图像分析与模式识别 》课程 期末 大 作业 报告 姓名: 赵世瑜 学号 : 20xx204067 15 / 19 disp(g_meandis)。 if ck/2+1|mod(w,2)==1 %继续做步骤 8 %%%%%%%%%%%%9...实际聚类中心数跟预期数相比太小要进行分裂 %%%%%%%%%%%% %%%%%%%%%%%%对各个聚类求标准偏差 %%%%%%%%%%%%%%%%%%%%%%%% std_err=zeros(1,c)。 for x=1:c sum1=zeros(1,c)。 for i=1:m for j=1:n if A(i,j)==J(x) sum1(x)=sum1(x)+((I(i,j)J(x))*(I(i,j)J(x)))。 end end end std_err(x)=sqrt(1/count(x)*sum1(x)*)。 end %%%%%%%%%%%%%10..求最大标准差分量 ..灰度图特征分量为 1%%%%%%%%%%%% %%%%%%%%%%11..决定是否分裂 %%%%%%%%%%%%%%%%%%%% t=。 % t 为 (0,1]之间的数保证样本仍在两个集合中 r=zeros(1,c)。 J_rec=J。 for x=1:c if std_err(x) g_meandisamp。 count(x)2*(sN+1) r(x)=t*meandis(x)。 c=c+1。 %实际类的数目加 1 J_rec(x)=J(x)。 %记录原中心点的灰度值 J(x)=J(x)+r(x)。 J(c)=J(x)r(x)。 for i=1:m。图像校正及分割处理软件设计与实现模式识别与智能系统(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。