部分图像分割的方法(matlab).pdf

上传人:l**** 文档编号:80999110 上传时间:2023-03-23 格式:PDF 页数:11 大小:239.01KB
返回 下载 相关 举报
部分图像分割的方法(matlab).pdf_第1页
第1页 / 共11页
部分图像分割的方法(matlab).pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《部分图像分割的方法(matlab).pdf》由会员分享,可在线阅读,更多相关《部分图像分割的方法(matlab).pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 大津法: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:l if count(i

2、)=0 st=i-1;break end end%以上循环语句实现寻找出现概率不为 0 的最小灰度值 for i=l:-1:1 if count(i)=0;nd=i-1;break end end%实现找出出现概率不为 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);%求

3、出不同 k 值时类间方差 y,tp=max(d);%求出最大方差对应的灰度级 th=tp+p;if thth)y1(i,j)=x1(i,j);else y1(i,j)=0;end end end%上面一段代码实现分割%figure,imshow(y1);%title(灰度门限分割的图像);程序二:clc;clear;cd D:My DocumentsMATLAB time=now;I=imread(qr4.bmp);figure(1),imshow(I),title(p1_1.bmp);%show the picture I2=rgb2gray(I);figure(2),imshow(I2),

4、title(I2.bmp);%J=medfilt2(I2);figure(3),imshow(J);imwrite(J,J.bmp);M N=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);%figu

5、re(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);function bw_img=test_gray2bw(img)%大津法 row_img col_img =size(img)all_pix=row_img*col_img%get probability of each pixel().count_pix=zeros(1,256)%pro_pix=for i=1:1:r

6、ow_img for j=1:1:col_img count_pix(1,img(i,j)+1)=count_pix(1,img(i,j)+1)+1%end end pro_pix=count_pix/all_pix%choose k value;max_kesi=-1 T=0 for k=1:1:while(i=k)wa=wa+pro_pix(1,i+1)%ki ua=ua+i*pro_pix(1,i+1)i=i+1 end if(wa=0.0)continue;else ua=ua/wa end ub=0 wb=0 i=k+1 while(i max_kesi)max_kesi=kesi

7、T=k end end%get bw img bw_img=img for i=1:1:row_img for j=1:1:col_img if(img(i,j)=T)bw_img(i,j)=0 else bw_img(i,j)=255 end end end imwrite(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;%相似

8、性选择阈值%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 赋予 B r,c=size(B);%图像尺寸 r 为行数,c 为列数 n=r*c;%计算图像所包含点的个数 pixel_seed=seed;%原图起始点灰度值 q=x1 y1;

9、%q 用来装载起始位置 top=1;%循环判断 flag M=zeros(r,c);%建立一个与原图形同等大小的矩阵 M(x1,y1)=1;%将起始点赋为 1,其余为 0 count=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:1 if r1+i0&c1+j0%保证在点周围围之 if abs(A(r1+i,c1+j)-p)=n%如果满足判定条件的点个数大于等于 n top=1;end

10、 q=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;For

11、egroundSum=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%当阈值不再变化的时候,说明迭代结束 end disp(strcat(迭代后的阀值:,num2str(double(TK);%显示迭代计算后阈值 TK newI=im2bw(I,double(TK)/255);subplot(1,2,1);imshow(I);xlabel(a)原始图像);subplot(1,2,2);imshow(newI);xlabel(b)迭代法分割效果图)%程序 OK 没问题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁