首页 图像编程K-means 聚类算法的图像区域分割【matlab源码】

图像编程K-means 聚类算法的图像区域分割【matlab源码】

举报
开通vip

图像编程K-means 聚类算法的图像区域分割【matlab源码】图像编程K-means 聚类算法的图像区域分割【matlab源码】 毕业论文,设计, 题 目 学 院 学 院 专 业 学生姓名 学 号 年级 级 指导教师 毕业教务处制表毕业 matlabÍ?Ïñ?à?ÌK-means ?ÛÀàËã??µÄÍ?ÏñÇøÓò?Ö?î 一、程序说明 本团队长期从事matlab编程与仿真工作,擅长各类毕业设计、数据处理、图表绘制、 理论分析等,程序代做、数据分析 具体信息联系 二、程序示例 function vec=exactvecotr(img) [m,n,~]=...

图像编程K-means 聚类算法的图像区域分割【matlab源码】
图像编程K-means 聚类算法的图像区域分割【matlab源码】 毕业论文 毕业论文答辩ppt模板下载毕业论文ppt模板下载毕业论文ppt下载关于药学专业毕业论文临床本科毕业论文下载 , 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 , 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目 学 院 学 院 专 业 学生姓名 学 号 年级 级 指导教师 毕业教务处制表毕业 matlabÍ?Ïñ?à?ÌK-means ?ÛÀàËã??µÄÍ?ÏñÇøÓò?Ö?î 一、程序说明 本团队长期从事matlab编程与仿真工作,擅长各类毕业设计、数据处理、图表绘制、 理论分析等,程序代做、数据分析 具体信息联系 二、程序示例 function vec=exactvecotr(img) [m,n,~]=size(img); vec=zeros(m*n,3); img=double(img); for j=1:n for i=1:m color=img(i,j,:); dist=[]; texture=[]; vec((j-1)*m+i,:)=[color(:);dist(:);texture(:)]; end end function [F,C]=imkmeans(I,C) if nargin~=2 error('IMKMEANS:InputParamterNotRight','Ö?ÄÜÓÐÁ??öÊäÈë?ÎÊý??'); end if isempty(C) K=2; C=[]; elseif isscalar(C) K=C; C=[]; else K=size(C,1); end X=exactvecotr(I); if isempty(C) C=searchintial(X,'sample',K); end Cprev=rand(size(C)); while true D=sampledist(X,C,'euclidean'); [~,locs]=min(D,[],2); for i=1:K C(i,:)=mean(X(locs==i,:),1); end if norm(C(:)-Cprev(:))<eps break end Cprev=C; end [m,n,~]=size(I); F=reshape(locs,[m,n]); clc close all I=imread('football.jpg'); I=double(I)/255; subplot(2,3,1) imshow(I) title('Ô?Ê?Í?Ïñ') for i=2:6 F=imkmeans(I,i); subplot(2,3,i); imshow(F,[]); title(['?ÛÀà?öÊý=',num2str(i)]) end function D=sampledist(X,C,method,varargin) [n,p]=size(X); K=size(C,1); D=zeros(n,K); switch lower(method(1)) case 'e' for i=1:K D(:,i)=(X(:,1)-C(i,1)).^2; for j=2:p D(:,i)=D(:,i)+(X(:,j) - C(i,j)).^2; end end case 'c' for i=1:K D(:,i)=abs(X(:,1) - C(i,1)); for j=2:p D(:,i)=D(:,i) + abs(X(:,j) - C(i,j)); end end end function [center]=searchcenter(X,kratio) [n,~]=size(X); isleft=true(n,1); count=zeros(n,1); center=[]; kind=0; dist=0; for i=1:n for j=i+1:n dist=dist+weightdist(X(i,:),X(j,:)); end end dist=dist/((n-1)*(n-1)/2); radius1=dist*kratio(1);radius2=dist*kratio(2); while any(isleft) for i=1:n count(i)=0; if isleft(i) for j=1:n if isleft(j) dist=weightdist(X(i,:),X(j,:)); count(i)=count(i) + dist<=radius1; end end end end [~,locs]=max(count); iscenter=true; for i=1:kind dist=weightdist(X(locs,:),center(i,:)); iscenter=iscenter && dist>=radius2; if ~iscenter break; end end if iscenter kind=kind+1; center(end+1,:)=X(locs,:); for i=1:n if isleft(i) dist=weightdist(X(i,:),X(locs,:)); if dist <= radius1 isleft(i)=false; end end end else isleft(locs)=false; end end function C=searchintial(X,method,varargin) switch lower(method(1)) case 's' K=varargin{1}; C=X(randsample(size(X,1),K),:); case 'u' Xmins=min(X,[],1); Xmaxs=max(X,[],1); K=varargin{1}; C=unifrnd(Xmins(ones(K,1),:), Xmaxs(ones(K,1),:)); end
本文档为【图像编程K-means 聚类算法的图像区域分割【matlab源码】】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:21KB
软件:Word
页数:6
分类:
上传时间:2017-10-16
浏览量:117