部分图像分割的方法(matlab).doc_第1页
部分图像分割的方法(matlab).doc_第2页
部分图像分割的方法(matlab).doc_第3页
部分图像分割的方法(matlab).doc_第4页
部分图像分割的方法(matlab).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档大津法:function y1=OTSU(image,th_set)image=imread(color1.bmp);gray=rgb2gray(image);%原图像的灰度图low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,);% subplot(224);imshow(gray);title(after adjust);count=imhist(gray);r,t=size(gray);n=r*t;l=256;count=count/n;%各级灰度出现的概率for i=2:lif count(i)=0st=i-1;breakendend%以上循环语句实现寻找出现概率不为0的最小灰度值for i=l:-1:1if count(i)=0;nd=i-1;breakendend%实现找出出现概率不为0的最大灰度值f=count(st+1:nd+1);p=st;q=nd-st;%p和分别是灰度的起始和结束值u=0;for i=1:q;u=u+f(i)*(p+i-1);ua(i)=u;end%计算图像的平均灰度值for i=1:q;w(i)=sum(f(1:i);end%计算出选择不同k的时候,A区域的概率d=(u*w-ua).2./(w.*(1-w);%求出不同k值时类间方差y,tp=max(d);%求出最大方差对应的灰度级th=tp+p;if thth)y1(i,j)=x1(i,j);elsey1(i,j)=0;endendend%上面一段代码实现分割% figure,imshow(y1);% title(灰度门限分割的图像);程序二:clc;clear;cdD:MyDocumentsMATLABtime=now;I=imread(qr4.bmp);figure(1),imshow(I),title(p1_1.bmp);%showthepictureI2=rgb2gray(I); figure(2),imshow(I2),title(I2.bmp);%J=medfilt2(I2);figure(3),imshow(J);imwrite(J,J.bmp);MN=size(J);J1=J(1:M/2,1:fix(N/2);J2=J(1:M/2,fix(N/2)+1:N);J3=J(M/2+1:M,1:fix(N/2);J4=J(M/2+1:M,fix(N/2)+1:N);%figure(4),img=J1;T1=test_gray2bw(img);%figure(5),img=J2;T2=test_gray2bw(img);%figure(6),img=J3;T3=test_gray2bw(img);%figure(7),img=J4;T4=test_gray2bw(img);T=T1,T2;T3,T4;figure,imshow(T)%T1=edge(T,sobel);%figure,imshow(T1);%BW=edge(T,sobel);%figure,imshow(BW);functionbw_img=test_gray2bw(img)%大津法row_imgcol_img=size(img)all_pix=row_img*col_img%getprobabilityofeachpixel().count_pix=zeros(1,256)%pro_pix=fori=1:1:row_imgforj=1:1:col_imgcount_pix(1,img(i,j)+1)=count_pix(1,img(i,j)+1)+1%endendpro_pix=count_pix/all_pix%choosekvalue;max_kesi=-1T=0fork=1:1:while(i=k)wa=wa+pro_pix(1,i+1)%kiua=ua+i*pro_pix(1,i+1)i=i+1endif(wa=0.0)continue;elseua=ua/waendub=0wb=0i=k+1while(imax_kesi)max_kesi=kesiT=kendend%getbwimgbw_img=imgfori=1:1:row_imgforj=1:1:col_imgif(img(i,j)=T)bw_img(i,j)=0elsebw_img(i,j)=255endendendimwrite(bw_img,bw_img.bmp)figure(),imshow(bw_img.bmp)%,title(bw_ing)区域生长法:close all;clear all;clc;A=dicomread(im.dcm);%读入图像(医学CT图像)% seed=200,220;%选择起始位置thresh=6.3;%相似性选择阈值%A=rgb2gray(A0);%A=A0;%灰度化%A=imadjust(A,min(min(double(A)/255,max(max(double(A)/255,);figure,imshow(A,);A=double(A); %将图像灰度化y,x=getpts; %获得区域生长起始点x1=round(x); %横坐标取整y1=round(y); %纵坐标取整seed=A(x1,y1);B=A;%将A赋予Br,c=size(B); %图像尺寸 r为行数,c为列数n=r*c;%计算图像所包含点的个数pixel_seed=seed;%原图起始点灰度值q=x1 y1;%q用来装载起始位置top=1;%循环判断flagM=zeros(r,c);%建立一个与原图形同等大小的矩阵M(x1,y1)=1;%将起始点赋为1,其余为0count=1;%计数器while top=0 %也可以写成top!=0 循环结束条件r1=q(1,1);%起始点行位置c1=q(1,2);%起始点列位置p=A(r1,c1);%起始点灰度值dge=0;for i=-1:1%周围点的循环判断for j=-1:1if r1+i0&c1+j0%保证在点周围范围之内if abs(A(r1+i,c1+j)-p)=n%如果满足判定条件的点个数大于等于ntop=1;endq=q(2:top,:);top=top-1;end%subplot(1,2,1),figure,imshow(M,displayrange,);figure,%subplot(1,2,2),imshow(B,);%最后是做的一个例子迭代法:clear all;I=imread(rice.png);ZMAX=max(max(I); %取出最大灰度值ZMIN=min(min(I); %取出最小灰度值TK=(ZMAX+ZMIN)/2;bcal=1;ISIZE=size(I); %读出图像大小while(bcal) iForeground=0; %定义前景和背景数 iBackground=0; ForegroundSum=0; %定义前景和背景灰度总和 BackgroundSum=0; for i=1:ISIZE(1) %循环部分求解读下% for j=1:ISIZE(2) tmp=I(i,j); if(tmp=TK) iForeground=iForeground+1; ForegroundSum=ForegroundSum+double(tmp); %前景灰度值 else iBackground=iBackground+1; BackgroundSum=BackgroundSum+double(tmp); end end end ZO=ForegroundSum/iForeground; %计算前景和背景的平均值 ZB=BackgroundSum/iBackground; TKTmp=uint8(ZO+ZB)/2; if(TKTmp=TK ) bcal=0; else TK=TKTmp; end %当阈值不再变化的时候,说明迭代结束enddisp(strcat(迭代后的阀值:,num2str(double(TK); %显示迭代计算后阈值TKnewI=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论