细菌图像处理软件制作报告_第1页
细菌图像处理软件制作报告_第2页
细菌图像处理软件制作报告_第3页
细菌图像处理软件制作报告_第4页
细菌图像处理软件制作报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、细菌图像处理软件本程序使用以下几个数据全局变量:I、 I0 、I1、I2、I3、l、data、da。I是动态变量,存放当前处理完成后的图片信息,主要用于有顺序关系的函数之间的传递数据。I0存放刚载入是的原始图像,如果后面函数需要使用原始图像,可以从这里读取。I1存放I经过灰度处理或获取单颜色分量后的数据,方便轮廓线的多次重复取。I2存放补洞后的I的图像数据,方便之后异或图像I3用于暂存图像,暂存当前的图像l 用于存放标定长度data用于存放图片上所有目标的编号、对应面积、有效直径、负累计面积da用于存放指定目标的编号、对应面积、有效直径。实验训练题:首先打开MATLAB界面,输入“guide+

2、Enter”。 选择Blank GUI(Default),命名为xuqiang.fig后,点击OK出现一个空白的图形处理界面。加入axes1加入pushbutton1,改名为打开图像,插入函数:global I I0FileName,PathName=uigetfile('*.jpg','打开图像');FileName=strcat(PathName,FileName);I0=imread(FileName);I=I0;imshow(I);加入pushbutton2,改名为保存图像,插入函数:global IFileName,PathName=uiputfile

3、('*.jpg','保存图像');imwrite(I,strcat(PathName,FileName),'jpg');加入popupmenu1,改名为原始图像 灰度图像 红色分量 绿色分量 蓝色分量,插入函数:global I I0 I1n=get(findobj('Tag','popupmenu1'),'value');switch n case 1 I=I0; I1=I; case 2 I=rgb2gray(I0); I1=I; case 3 I=I0(:,:,1); I1=I; case 4

4、 I=I0(:,:,2); I1=I; case 5 I=I0(:,:,3); I1=I;endimshow(I);加入pushbutton3,改名为取轮廓线,插入函数:global I I0 I1I=I1; m=get(findobj('Tag','popupmenu2'),'String');n=get(findobj('Tag','popupmenu2'),'value');I=edge(I,mn,:);imshow(I);加入popupmenu2,改名为canny sobel prewitt

5、 log zerocross roberts .加入pushbutton4,改名为黑白图像,插入函数:global I I0I=rgb2gray(I0);n=str2num(get(findobj('Tag','edit1'),'string');if(n>0)&(n<255) n=n/255;else n = graythresh(I0);endI=im2bw(I,n);imshow(I)加入edit1,改名为auto。加入text1,改名为阈值。加入pushbutton5,改名为反色负像,插入函数:global I I=I

6、;imshow(I);加入pushbutton6,改名为分割图像,插入函数:global Iimshow(I);CX,CY,C=improfile;k=1;Xk=round(CX(k);Yk=round(CY(k);C=I(Yk,Xk);while k<length(CX) k=k+1; if abs(CX(k)-Xk)>0.5 Xk=Xk+sign(CX(k)-Xk); I(Yk,Xk)=C; end if abs(CY(k)-Yk)>0.5 Yk=Yk+sign(CY(k)-Yk); I(Yk,Xk)=C; endendimshow(I);加入radiobutton1,改

7、名为4-邻域,Value改为1,插入函数:SE=0 1 0; 1 1 1; 0 1 0;for k=1:9set(findobj('Tag',strcat('checkbox',num2str(k),'value',SE(k);endset(hObject,'value',1);set(findobj('Tag','radiobutton2'),'value',0);set(findobj('Tag','radiobutton3'),'valu

8、e',0);加入radiobutton2,改名为8-邻域,插入函数:SE=1 1 1; 1 1 1; 1 1 1;for k=1:9set(findobj('Tag',strcat('checkbox',num2str(k),'value',SE(k);endset(findobj('Tag','radiobutton1'),'value',0);set(hObject,'value',1);set(findobj('Tag','radiobutton

9、3'),'value',0);加入radiobutton3,改名为自定义,插入函数:set(findobj('Tag','radiobutton1'),'value',0);set(findobj('Tag','radiobutton2'),'value',0);set(findobj('Tag','radiobutton3'),'value',1);加入Panel 。加入checkbox1(Callback中的checkbox

10、1改为radiobutton3) checkbox2(Value改为1, Callback中的checkbox2改为radiobutton3) checkbox3(Callback中的checkbox3改为radiobutton3) checkbox4(Value改为1, Callback中的checkbox4改为radiobutton3) checkbox5(Value改为1,Enable改为off)checkbox6(Value改为1, Callback中的checkbox6改为radiobutton3) checkbox7(Callback中的checkbox7改为radiobutton

11、3) checkbox8(Value改为1, Callback中的checkbox8改为radiobutton3) checkbox9(Callback中的checkbox9改为radiobutton3) 。加入pushbutton7,改名为腐蚀图像,插入函数:global ISE=zeros(3);for k=1:9SE(k)=get(findobj('Tag',strcat('checkbox',num2str(k),'value');end I=imerode(I,SE);imshow(I);加入pushbutton8,改名为膨胀图像,插入

12、函数:global ISE=zeros(3);for k=1:9SE(k)=get(findobj('Tag',strcat('checkbox',num2str(k),'value');endI=imdilate(I,SE);imshow(I);加入pushbutton9,改名为自动补洞,插入函数:global I I2I2=I;I=imfill(I,'holes');imshow(I);加入pushbutton10,改名为手工填充,插入函数:global I I2I2=I;I=imfill(I);imshow(I);加入pus

13、hbutton11,改名为异或图像,插入函数:global I I2I=xor(I,I2);imshow(I);加入pushbutton12,改名为暂存图像,插入函数:global I I3I3=I;imshow(I);加入pushbutton13,改名为交换图像,插入函数:global I I3i=I3;I3=I;I=i;imshow(I);加入pushbutton14,改名为合并图像,插入函数:global I I3 I=or(I,I3);imshow(I);加入pushbutton15,改名为标识图像,插入函数:global I I0if(length(size(I0)=3) I=uin

14、t8(double(rgb2gray(I0).*I);else I=uint8(double(I0).*I);endimshow(I);加入pushbutton16,改名为目标测量,插入函数:global I l N=bweuler(I,4);set(findobj('Tag','edit2'),'String',num2str(N);A=bwarea(I);Z= A*l*l;Z=round(Z*1000)/1000;set(findobj('Tag','edit3'),'String',num2s

15、tr(Z);P= A*l*l /N;P=round(P*1000)/1000;set(findobj('Tag','edit4'),'String',num2str(P);加入text2,改名为目标个数 目标面积/m2平均面积/m2。加入edit2,edit3,edit4,均清除内容综合考查题:1. 请改进细菌图象处理GUI界面,增加像素标定(包含标定长度、像素边长、像素面积可编辑文本框)功能。照片fig_0.jpg的高度为15m,请标定照片中的像素边长、像素面积。照片fig_0.jpg加入pushbutton17,改名为像素标定,插入函数:gl

16、obal I lL=str2num(get(findobj('Tag','edit5'),'string');x,y=getline;l=L/sqrt(x(2)-x(1)2+(y(2)-y(1)2);l=round(l*100)/100;set(findobj('Tag','edit6'),'string',num2str(l);set(findobj('Tag','edit7'),'string',num2str(l*l);加入text3,改名为标定

17、长度/m 像素边长/m 像素面积/m2。加入edit5,edit6,edit7,均清除内容。操作:先在“标定长度”对应的框中输入15,再点击“像素标定”,出现“+”后,单击图片上沿,平行拉至下沿双击。2. 请利用自己设计的细菌图象处理软件,分析照片fig_0.jpg中完整细菌个数与平均面积。操作:点击“目标测量”。3. 在细菌图象处理软件增加测量指定目标的面积与统计所有目标的各自的面积功能,并测量照片fig_0.jpg中所有细菌目标各自的面积,在可编辑文本框中按面积从小到大输出所有的目标编号、对应面积、有效直径(即与对应目标等面积的圆形直径)、负累计面积(面积等于所有当前目标面积之和)。加入p

18、ushbutton18,改名为所有目标,插入函数:global I l data;L=bwlabel(I,4);S=regionprops(L,'Area','EquivDiameter');n=length(S);for i=1:n a(i,1)=i; a(i,2)=S(i).Area; a(i,3)=S(i).EquivDiameter; a(i,2)=a(i,2)*l*l; a(i,3)=a(i,3)*l;a(i,3)=round(a(i,3)*100)/100;enddata,pos=sort(a(:,2);data=a(pos,:);data(1,4)

19、=data(1,2);for i=2:n data(i,4)=data(i,2)+data(i-1,4);endset(findobj('Tag','listbox1'),'string',num2str(data);加入pushbutton19,改名为指定目标,插入函数:X,Y=ginput(1);X=round(X);Y=round(Y);global I data daL=bwlabel(I,4);n=L(X,Y);if n=0 pushbutton19_Callback;endi=find(data(:,1)=n);da=da;data(

20、i,1:3);set(findobj('Tag','listbox1'),'string',num2str(da);加入listbox1,清空内容。加入text4,改名为编号、对应面积/um2、有效直径/um、负累计面积/um2。操作:点击“所有目标”。点击“指定目标”,鼠标指针变为“+”,双击单个菌体。4. 在细菌图象处理软件中增加多项式回归模型的建模的功能,软件可自动读取在可编辑文本框中输入的建模数据来建模,模型参数从另外的可编辑文本框输出,并对第3题的负累计面积(纵坐标)与有效直径(横坐标)的测量结果建立多项式回归模型,原始数据与模型曲线都

21、要绘图输出。加入pushbutton20,改名为建模,插入函数:global dataset(findobj('Tag','listbox2'),'String',num2str(data( :,1 3 4);C=data(:,4);t=data(:,3);N=str2num(get(findobj('Tag','edit8'),'string');p=polyfit(t,C,N);tt=min(t):(max(t)-min(t)/100:max(t);CC=polyval(p,tt);plot(t

22、,C,'o',tt,CC)xlabel('x');ylabel('y');y=poly2sym(p);b=char(y);a=strcat('y=',b);c=polyval(p,t);r2=sum(C-c).2);r=max(abs(C-c);R2=std(c)2/std(C)2;set(findobj('Tag','edit9'),'String',a);set(findobj('Tag','edit10'),'String',nu

23、m2str(r2);set(findobj('Tag','edit11'),'String',num2str(r);set(findobj('Tag','edit12'),'String',num2str(R2);加入listbox2,清空内容。加入text5,改名为编号、有效直径/um、负累计面积/um2。加入text6,改名为多项式次数、残差平方和、最大残差、拟合度、拟合曲线。加入edit8、edit9、edit10、edit11、edit12,均清除内容。操作:在“多项式次数”对应的框中输入1

24、,点击“建模”。在“多项式次数”对应的框中输入2,点击“建模”。在“多项式次数”对应的框中输入3,点击“建模”。5. 若不完整的细菌个数可用小数表示,请提出合理的近似估算方法,估算照片fig_1.jpg相当于有多少个完整菌,并在细菌图象处理软件中添加估算所需的相应功能。 (提示: 照片fig_0.jpg是照片fig_1.jpg右下角的一小部分区域的抽样,前面对照片fig_0.jpg处理获得的数据可直接利用。)照片fig_1.jpg思路:将上一张图的平均面积暂存显示再edit13中,再调取edit4中的当前图中的白色区域面积,后者除以前者得到估算的菌体个数。加入pushbutton21,改名为暂存平均面积,插入函数:L=str2num(get(findobj('Tag','edit4'),'string');set(findobj('Tag','edit13'),'String',num2str(L);加入pushbutton22,改名为估算菌体个数,插入函数:pj=str2num(get(findobj('Tag','edit13'),'string');L=str2num(get(findobj('Tag'

温馨提示

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

最新文档

评论

0/150

提交评论