- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)); %大
您可能关注的文档
最近下载
- 投标人对保证工程质量及详细的质量违约处罚措施的承诺;.doc
- 2023年深圳市南山区第二外国语学校小升初分班考试英语模拟试卷及答案解析.docx
- 华东理工大学《多元统计学》2020-2021学年第二学期期末试卷.pdf
- 主题班会成功无捷径 学习当奋斗(课堂PPT).ppt
- 习概 推进依法治国.docx VIP
- 安徽大学-2020-2021学年第-一-学期大学英语A试卷及答案.docx
- 常见创伤分类与现场急救(1).ppt
- DENON天龙AV接收机AVC-X8500H产品说明书.pdf
- 中学英语教研组校本研修活动记录.doc
- 河北工业大学2022-2023学年第2学期《高等数学(下)》期末试卷(A卷)附标准答案.pdf
文档评论(0)