浙江大学生物系统工程-图像处理与机器视觉-实验报告.docx_第1页
浙江大学生物系统工程-图像处理与机器视觉-实验报告.docx_第2页
浙江大学生物系统工程-图像处理与机器视觉-实验报告.docx_第3页
浙江大学生物系统工程-图像处理与机器视觉-实验报告.docx_第4页
浙江大学生物系统工程-图像处理与机器视觉-实验报告.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

生物系统工程 蒋昊铮 3120100277机器视觉实验报告蒋昊铮 3120100277灰度变换实验1 灰度范围移动处理程序(d0)ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageShow=ImageIn+150;subplot(1,2,2);imshow(ImageShow)程序(d0)ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageShow=ImageIn-100;subplot(1,2,2);imshow(ImageShow)实验2 灰度线性变换(整体灰度线性变换)程序:ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)MinGray=min(min(ImageIn);MaxGray=max(max(ImageIn);MinShow=0;MaxShow=255;ImageShow=(MaxShow-MinShow)/(MaxGray-MinGray)*(ImageIn-MinGray)+MinShow;ImageShow=uint8(ImageShow);subplot(1,2,2);imshow(ImageShow)实验3 灰度线性变换(限幅灰度拉伸)代码1ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)MinGray=min(min(ImageIn);MaxGray=max(max(ImageIn);MinShow=0;MaxShow=255;for i1 = 1 : size(ImageIn,1) for i2 = 1 : size(ImageIn,2) if ImageIn(i1,i2)MinGray ImageShow(i1,i2)=MinShow; elseif (ImageIn(i1,i2)=MinGray) ImageShow(i1,i2)=(MaxShow-MinShow)/(MaxGray-MinGray)*(ImageIn(i1,i2)-MinGray)+MinShow;else ImageShow(i1,i2)=MaxShow;end endendImageShow=uint8(ImageShow);subplot(1,2,2);imshow(ImageShow)代码2ImageIn=imread(lenaGray.tiff);subplot(1,2,1); imshow(ImageIn) MinGray=min(min(ImageIn); MaxGray=max(max(ImageIn); MinShow=0; MaxShow=255; if ImageInMaxGray ImageShow=MaxShow; elseImageShow=(MaxShow-MinShow)/(MaxGray-MinGray)*(ImageIn-MinGray)+MinShow; end ImageShow=uint8(ImageShow); subplot(1,2,2); imshow(ImageShow)实验4灰度线性变换(锯齿形灰度拉伸)ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)MinShow=0;M1=65;M2=129;M3=193;MaxShow=255;for i1 = 1 : size(ImageIn) for i2 = 1 : size(ImageIn,2) if (ImageIn(i1,i2)=MinShow) ImageShow(i1,i2)=(M3-MinShow)/(max(max(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)*(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)+MinShow;elseif (ImageIn(i1,i2)=M1) ImageShow(i1,i2)=(M2-M1)/(max(max(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)*(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)+M1;elseif (ImageIn(i1,i2)=M2) ImageShow(i1,i2)=(M3-M2)/(max(max(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)*(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)+M2;else ImageShow(i1,i2)=(MaxShow-M3)/(max(max(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)*(ImageIn(i1,i2)-min(min(ImageIn(i1,i2)+M3;end endend ImageShow=uint8(ImageShow);subplot(1,2,2);imshow(ImageShow)实验5灰度线性变换(阈值灰度分割法)ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageIn=double(ImageIn);ImageShow=zeros(256,256);ImageShow=double(ImageShow);for j=1:size(ImageIn,1) for i=1:size(ImageIn,2) ImageShow(j,i)=ImageIn(j,i)*ImageIn(j,i)/255; endendImageShow=uint8(ImageShow);subplot(1,2,2);imshow(ImageShow)实验6 灰度非线性变换ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageIn=double(ImageIn);ImageShow=zeros(256,256);ImageShow=double(ImageShow);for j=1:size(ImageIn,1) for i=1:size(ImageIn,2) ImageShow(j,i)=sqrt(ImageIn(j,i)/16*255; endendImageShow=uint8(ImageShow);subplot(1,2,2);imshow(ImageShow)直方图变换实验1直方图的计算ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageGray=0:255;ImageBar=ImageGray;for i1=1:size(ImageGray,2) ImageBar(i1)=sum(sum(ImageIn=ImageGray(i1);end subplot(1,2,2)bar(ImageGray,ImageBar)实验2累积直方图ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn)ImageGray=0:255; ImageBar=ImageGray;for i1=1:size(ImageGray,2) ImageBar(i1)=sum(sum(ImageIn=ImageGray(i1);endImageBar=ImageBar/(size(ImageIn,2)*size(ImageIn,1)*100;SumBar=ImageBar;for i1=2:size(SumBar,2) SumBar(i1)=SumBar(i1-1)+ImageBar(i1);end subplot(1,2,2);plot(ImageGray,SumBar)实验3均衡化直方图ImageIn=imread(lenaGray.tiff);subplot(2,2,1);imshow(ImageIn); ImageGray=0:255;ImageBar=ImageGray;ImageSize=size(ImageIn,1)*size(ImageIn,2);for i1=1:size(ImageGray,2) ImageBar(i1)=sum(sum(ImageIn=ImageGray(i1);endsubplot(2,2,2);bar(ImageGray,ImageBar); ImageBar=ImageBar/ImageSize;ImageBarNew=ImageBar;for i1=2:size(ImageBarNew,2) ImageBarNew(i1)=ImageBarNew(i1-1)+ImageBar(i1);endbar(ImageGray,ImageBarNew)ImageShow=ImageIn;for i1=1:size(ImageIn,1) for i2=1:size(ImageIn,2) ImageShow(i1,i2)=uint8(ImageBarNew(ImageIn(i1,i2)*255); endend subplot(2,2,3);imshow(ImageShow); I=ImageGray;for i1=1:size(ImageGray,2) I(i1)=sum(sum(ImageShow=ImageGray(i1);endsubplot(2,2,4);bar(ImageGray,I);锐化实验1 基础卷积A= ones(4);A(2,3)= 4;B= -1.*ones(3);B(2,2)=8;C=ones(4);for i1=2:3; for i2=2:3; C(i1,i2)=sum(sum(A(i1-1:i1+1,i2-1:i2+1).*B); endend平滑实验1均值平滑ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn) ImageOut=ImageIn;ImageIn=double(ImageIn);MeanOperator=ones(3,3)/9;iOperator=MeanOperator;for i1=2:size(ImageIn,1)-1 for i2=2:size(ImageIn,2)-1 ImageOut(i1,i2)=sum(sum(ImageIn(i1-1:i1+1,i2-1:i2+1).*iOperator); endendImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut) 实验2阈值平滑ImageIn= imread(lenaGray.tiff);ImageOut=ImageIn;subplot(1,2,1);imshow(ImageIn)ImageIn=double(ImageIn);A=1/9.*ones(3);for i1 = 2:size(ImageIn,1)-1 for i2 = 2:size(ImageIn,2)-1 if abs(ImageIn(i1,i2)-sum(sum(ImageIn(i1-1:i1+1,i2-1:i2+1).*A)=10 ImageOut(i1,i2) = sum(sum(ImageIn(i1-1:i1+1,i2-1:i2+1).*A); end endend ImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut)实验3空域低通滤波ImageIn=imread(lenaGray.tiff);ImageOut=ImageIn;ImageOut_average=ImageIn;subplot(1,2,1);imshow(ImageIn)ImageIn=double(ImageIn);C=1/10.*ones(3);C(2,2)=1/5;for i1=2:size(ImageIn,1)-1 for i2=2:size(ImageIn,2)-1 ImageOut(i1,i2)=sum(sum(ImageIn(i1-1:i1+1,i2-1:i2+1).*C); endendImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut)实验4高斯平滑滤波ImageIn=imread(lenaGray.tiff);ImageOut=ImageIn;ImageOut_average=ImageIn;subplot(1,2,1);imshow(ImageIn)ImageIn=double(ImageIn); C=fspecial(gaussian,3 3,2);for i1=2:size(ImageIn,1)-1 for i2=2:size(ImageIn,2)-1 ImageOut(i1,i2)=sum(sum(ImageIn(i1-1:i1+1,i2-1:i2+1).*C); endendImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut)实验5中值滤波ImageIn= imread(lenaGray.tiff);ImageOut=ImageIn;subplot(1,2,1);imshow(ImageIn) mhl=2;mms=(mhl*2+1)*(mhl*2+1);mmmp=mhl*mhl*2+2*mhl+1; for i1=mhl+1:size(ImageIn,1)-mhl for i2=mhl+1:size(ImageIn,2)-mhl mm=ImageIn(i1-mhl:i1+mhl,i2-mhl:i2+mhl); mml=reshape(mm,1,mms); mml=sort(mml); ImageOut(i1,i2)=mml(mmmp); endend subplot(1,2,2);imshow(ImageOut)实验6边缘保持滤波器ImageIn=imread(lenaGray.tiff);ImageOut=ImageIn;subplot(1,2,1);imshow(ImageIn) HalfSideLength=2;SideLength=2*HalfSideLength+1; for i1=HalfSideLength+1:size(ImageIn,1)-HalfSideLength; for i2=HalfSideLength+1:size(ImageIn,2)-HalfSideLength; a=sum(sum(ImageIn(i1-HalfSideLength:i1,i2-HalfSideLength:i2)/(2*HalfSideLength+1)*(2*HalfSideLength+1); b=sum(sum(ImageIn(i1:i1+HalfSideLength,i2-HalfSideLength:i2)/(2*HalfSideLength+1)*(2*HalfSideLength+1); c=sum(sum(ImageIn(i1-HalfSideLength:i1,i2:i2+HalfSideLength)/(2*HalfSideLength+1)*(2*HalfSideLength+1); d=sum(sum(ImageIn(i1:i1+HalfSideLength,i2:i2+HalfSideLength)/(2*HalfSideLength+1)*(2*HalfSideLength+1); A=a,b,c,d; ImageOut(i1,i2)= min(A); endendsubplot(1,2,2);imshow(ImageOut)伪彩色处理实验1clearclcImageIn=imread(lenaGray.tiff);ImageOut=ImageIn;subplot(1,2,1);imshow(ImageIn) QBcolor(1,:)=39,39,39;QBcolor(2,:)=45,67,78;QBcolor(3,:)=56,76,155;QBcolor(4,:)=234,121,23;QBcolor(5,:)=22,22,34;QBcolor(6,:)=12,76,43;QBcolor(7,:)=122,23,223;QBcolor(8,:)=55,55,55;QBcolor(9,:)=64,64,64;QBcolor(10,:)=0,0,255;QBcolor(11,:)=0,255,0;QBcolor(12,:)=0,0,255;QBcolor(13,:)=255,0,0;QBcolor(14,:)=255,0,255;QBcolor(15,:)=255,255,0;QBcolor(16,:)=255,255,255;ImageOut=uint8(zeros(size(ImageIn,1),size(ImageIn,2),3); MinGray=double(min(min(ImageIn);MaxGray=double(max(max(ImageIn);MinShow=0;MaxShow=15;ImageIn16=double(ImageIn);ImageIn16=(MaxShow-MinShow)/(MaxGray-MinGray)*(ImageIn-MinGray)+MinShow;ImageIn16=uint8(ImageIn16); for i1=1:size(ImageOut,1) for i2=1:size(ImageOut,2) ImageOut(i1,i2,:)=QBcolor(ImageIn16(i1,i2)+1,:); endend ImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut)区域生成实验1迭代式阈值ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn);ImageGray= 0:255;ImageBar=ImageGrayfor i1= 1:size(ImageGray,2) ImageBar(i1) = sum(sum(ImageIn = ImageGray(i1);end ImageBarBig0=find(ImageBar0); Th=(ImageBarBig0(1)+ImageBarBig0(end)/2; ImageIn=double(ImageIn);Image1=double(ImageIn Th);S2=sum(sum(Image2);u2=sum(sum(Image2.*ImageIn)/S2;u1_Old=u1-1; while u1_Old =u1 u1_Old=u1; u2_Old=u2; Th= (u1+u2)/2; Image1= (ImageInTh); S2=sum(sum(Image2); u2= sum(sum(Image2.*ImageIn)/S2;endImageOut = uint8(ImageIn Th)*255;subplot(1,2,2);imshow(ImageOut);实验2大津算法ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn) ImageGray = 0:255;ImageBar = ImageGray;m,n = size(ImageIn);for i1 = 1:n ImageBar(i1) = sum(sum(ImageIn = ImageGray(i1);endSumAll =sum(ImageGray.*ImageBar);nAll=n*m;SdList=zeros(1,256); for i1=2:n-1 n0=sum(ImageBar(1:i1); Sum0=sum(ImageGray(1:i1).*ImageBar(1:i1); n1=nAll-n0; Sum1=SumAll-Sum0; if n00 & n10 u0=Sum0/n0; u1=Sum1/n1; SdList(i1)=n0*n1*(u0-u1)2; endendTh=find(SdList=max(SdList)ImageOut=uint8(ImageInTh)*255;ImageOut=uint8(ImageOut);subplot(1,2,2);imshow(ImageOut)实验3金字塔型ImageIn=imread(lenaGray.tiff);subplot(1,2,1);imshow(ImageIn) ImageIn=ImageIn(1:(size(ImageIn,1)-mod(size(ImageIn,1),4),1:(size(ImageIn,2)-mod(size(ImageIn,2),4);ImageOut=ImageIn(1:size(ImageIn,1)/4,1:size(ImageIn,2)/4); for i1=1:4:size(ImageIn,1) for i2=1:4:size(ImageIn,2) i3=uint8(i1/4+1); i4=uint8(i2/4+1); ImageOut(i3,i4)=uint8(sum(sum(ImageIn(i1:i1+3,i2:i2+3)/16); endend subplot(1,2,2);imshow(ImageOut)边缘检测实验1线的检测clearclcImageIn=imread(03.bmp);sub

温馨提示

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

评论

0/150

提交评论