图像信息处理之图像旋转和阈值分割.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像信息处理之图像旋转和阈值分割

图像信息处理上机实验报告 图像旋转、阈值分割 1、实验内容: (1)写出以图像中心点作为支点旋转任意角度,图像仍保持完整的旋转程序; (2)对Fig33图,采用灰度直方图峰谷方法分离出米粒,要求编写程序自动求直方图峰谷对应的分割阈值; (3)练习PS中把jimoxiong变换到jimoxiong2,或者反向恢复,并证明你的操作是成功的,写出基本步骤。 2、具体实验 一、图像旋转: 实验原理: :计算公式:i=icosθ-jsinθ j=icosθ+jcosθ (i,j)为原图像素点坐标,(i,j)是对应像素点经旋转变换后图像像素点坐标; :对计算所得坐标值取整; 对取整后坐标值范围进行画布扩大; 对图像出现的空穴进行 实验程序: function r=imrotate(I,theta) I = imread(L:\图像信息处理\17周上机\Fig33.BMP); [row,col]= size(I); theta=(30*pi/180); %旋转30度 cosa=cos(theta); sina=sin(theta); %原图四个顶点坐标 srcx1=-col*0.5;srcy1=row*0.5; srcx2=col*0.5;srcy2=row*0.5; srcx3=-col*0.5;srcy3=-row*0.5; srcx4=col*0.5;srcy4=-row*0.5; %图像旋转后四个顶点坐标 dstx1=cosa*srcx1-sina*srcy1; dsty1=sina*srcx1+cosa*srcy1; dstx2=cosa*srcx2-sina*srcy2; dsty2=sina*srcx2+cosa*srcy2; dstx3=cosa*srcx3-sina*srcy3; dsty3=sina*srcx3+cosa*srcy3; dstx4=cosa*srcx4-sina*srcy4; dsty4=sina*srcx4+cosa*srcy4; %计算旋转后图像宽度和高度 %旋转后图像高为对应顶点纵坐标之差较大值 h=max(abs(dsty4-dsty1),abs(dsty2-dsty3))+0.5; %旋转后图像宽为对应顶点纵坐标之差较大值 w=max(abs(dstx4-dstx1),abs(dstx2-dstx3))+0.5; %对新图高宽进行四舍五入 h=floor(h); w=floor(w); r=zeros(h,w); f1=-w*0.5*cosa-h*0.5*sina+0.5*col; f2=w*0.5*sina-h*0.5*cosa+0.5*row; for x=1:w for y=1:h x0=floor(x*cosa+y*sina+f1); y0=floor(-x*sina+y+cosa+f2);%对图像进行填充 if x00x0coly00y0=row r(y,x)=I(y0,x0); end end end subplot(121),imshow(I); subplot(122);imshow(r,[]); 实验结果: 二:阈值分割 实验原理: 所谓阈值方法就是确定某个阈值TH,根据图像中每个像素的灰度值大于或小于该阈值TH,来进行图像分割。当图像的灰度直方图为双峰分布时,表明图像的内容大致分为两个部分,分别为灰度分布的两个山峰的附近。灰度直方图的峰谷阈值方法是一种有效且非常简单的阈值方法,但是该方法有一个局限性,就是要求图像的灰度直方图必须具有双峰性。 实验程序: Im=imread(L:\图像信息处理\17周上机\Fig33.BMP); subplot(1,3,1),imhist(Im),title(灰度直方图) subplot(1,3,2),imshow(Im) , title(原像) [x,y]=size(Im); b=double(Im); zd=double(max(max(Im))) % 求出图象中最大的灰度 zx=double(min(min(Im))) % 最小的灰度 T=double((zd+zx))/2; count=double(0); while 1 % 迭代最佳阈值分割算法 count=count+1; S0=0.0; n0=0.0; S1=0.0; n1=0.0; for i=1:x for j=1:y if double(Im(i,j))=T S1=S1+double(Im(i,j)); %大

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档