ztong上机3
二、实验名称:数字图像处理matlab上机
三、实验学时:2学时
四、实验目的:(详细填写)
- 掌握几何变换
- 掌握插值
- 理解配准的概念
五.实验内容
- (1)首先自己写一个对图像进行旋转和缩放的复合变换程序;
- (2)然后通过基于点的配准找到一个变换矩阵,以将前面变换后的图像再变换回去。
六、实验器材(设备、元器件):
硬件:计算机 软件:windows XP ,matlab7.0
七、实验数据及结果分析:
内容一程序:
1:
2: function out = LinearT(
3: In,theta,sx, sy)
4: im
5: = imread(In);
6: degree = theta;
7: imm = im2double(im);
8: cos_d = cos(degree);
9: sin_d = sin(degree);
10: [width, height] = size(im);
11: R
12: = [cos_d -sin_d 0
13: sin_d cos_d 0
14: 0
15: 0 1];
16: T
17: = [1 0 -width/2.0
18: 0
19: 1 -height/2.0
20: 0
21: 0 1];
22: S=[sx,0,0;
23: 0,sy,0;
24: 0,0,1];
25: R=inv(T)*S*R*T;
26: [W, H, ws, we, hs, he] =
27: ComputeOutImSize(im, R);
28:
29: inR = inv(R);
30: ii=0;
31:
32: for i = ws:we%row
33: ii=ii+1; jj=0;
34: for j = hs:he%col
35: jj=jj+1;
36: locate_r = [i j 1]';
37: locate_s = inR*locate_r;
38: if(((locate_s(1)<=1)||(locate_s(1)>=width))||((locate_s(2)<=1)||(locate_s(2)>=height)))
39: V(ii,jj) = 0;
40: else
41: V(ii,jj) =
42: BilinearInterplate(imm,locate_s);
43:
44: end
45: end
46: end
47:
48: out= im2uint8(V);
49: end
50:
51: 调用程序
52: In='pre.bmp';
53:
54: theta=pi/8;
55: sx=2;
56:
57: sy=4;
58:
59: out = LinearT( In,theta,sx,
60: sy);
61: imshow(out)
62:
原始图像

处理后的图像

内容二程序
1:
2: s=1;
3:
4: f1=imread('pre.bmp');
5:
6: f2=imread('flop.bmp');
7:
8: figure(1)
9: subplot(121),imshow(f1)
10: subplot(122),imshow(f2)
11: N=4;
12: imtool(f2)
13: [w1,h1]=size(f1);
14: [w2,h2]=size(f2);
15: a=[0 0]';b=[w1-1 0]';c=[0 h1-1]';d=[w1-1
16: h1-1]';
17: a1=[4 93]';b1=[224 1]';c1=[113
18: 359]';d1=[333 267]';
19: x=[a b c d];
20: y=[a1 b1 c1 d1];
21: H=zeros(2);
22: xmean=[sum(x(1,:))/N;sum(x(2,:))/N];
23:
24: ymean=[sum(y(1,:))/N;sum(y(2,:))/N];
25:
26: xx=[x(1,:)-xmean(1);x(2,:)-xmean(2)];
27:
28: yy=[y(1,:)-ymean(1);y(2,:)-ymean(2)];
29:
30: for i=1:N
31: H=H+xx(:,i)*(yy(:,i))';
32: end
33: [U,S,V]=svd(H);
34: r=det(U*V);
35: W=[1 0;0 r];
36: R=V*W*U';
37: s=0;
38:
39: for i=1:N
40: s1=s+R*xx(:,i).*yy(:,i);
41: end
42:
43: for i=1:N
44: s2=s+R*xx(:,i).*xx(:,i);
45: end
46:
47: s=s1/s2;
48: t=xmean-s*R*ymean;
49: imm=im2double(f2);
50: ii=0;
51: for i
52: =1:w1
53: ii=ii+1; jj=0;
54: for j =
55: 1:h1
56: jj=jj+1;
57: SS=inv(R)*([i j]'-t);
58: if(((SS(1)<=1)||(SS(1)>=w2))||((SS(2)<=1)||(SS(2)>=h2)))
59:
60: S(ii,jj) = 0;
61: else
62: S(ii,jj) = BilinearInterplate(imm,SS);
63:
64: end
65: end
66:
67: end
68:
69: S0=
70: im2uint8(S);
71: figure(2)
72: imshow(S0)
73:
八、总结及心得体会:
- 掌握了几何变换
- 掌握了插值
- 理解了配准的概念
报告评分:
指导教师签字:
ztong上机3的更多相关文章
- flhs笔试题-回家上机实践
这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...
- Java连接SQLServer2008终极解决办法(亲身上机演练版)
今天我一学妹问我,Java连接SQLServer2008数据库的问题,一直无法连接成功.想起自己刚开始学习的时候,在网上找各种文章,然后实际上机验证操作,花了一两天时间才搞定,一把辛酸泪呀!记得当时是 ...
- 《Java语言程序设计》上机实验
实验一 Java环境演练 [目的] ①安装并配置Java运行开发环境: ②掌握开发Java应用程序的3个步骤:编写源文件.编译源文件和运行应用程序: ③学习同时编译多个Java源文件. [内容 ...
- C++ 第一次上机作业
今天完成了C++第一次上机作业,感觉比较简单. 题目: 求2个数或3个正整数中的最大数,用带有默认参数的函数实现. 对3个变量按由小到大顺序排序,要求使用变量的引用. 编写一个程序,用同一个函数名对几 ...
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
Twin Prime Conjecture Time Limit: 2000/1000 MS (Java/Othe ...
- 代C语言上机实践
这已经是开学第十二周了,个人感觉严老师教的这批学生效果不是很好,有的竟然毫不知道main函数前边的 int是做什么的.只知按照书本上给的样例程序一个字一个字的敲到编译器中,然后点击运行.有错误也不知道 ...
- lingo运筹学上机实验指导
<运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...
- JSP脚本元素上机手册
L3 <JSP基础>上机手册 内容回顾 脚本元素<%! %> <%= %> <% %> 注释元素 JSP指令元素 JSP动作元素 上机目标 掌握脚本元素 ...
- 华为上机题汇总----java
以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~ 第1题:输入字 ...
随机推荐
- Tab的键的妙用
vs2013输入“(”的时候自动加入了“)”,开始的时候感觉相当不方便,要按“End”才能继续输入“:”,后来发现按“Tab"也会自动跳出括号,于是满心喜欢.
- java,android获取系统当前时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss ");Date curDate = ...
- OBJECT ARX 添加标注样式
////获得当前图形的标注样式表 AcDbDimStyleTable* pDimStyleTbl; acdbHostApplicationServices()->workingDatabase( ...
- Android USB Connections Explained: MTP, PTP, and USB Mass Storage
Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB ...
- hdoj-2025
#include "stdio.h"#include "string.h"void sort(char ch[],int count[],int n,int f ...
- hive 中 union all
hive 中的union all是不能在sql语句的第一层使用的,否则会报 Top level UNION is not supported currently 错误: 例如如下的方式: select ...
- GridView导出Excel
public void OUTEXCEL() { DataSet ds = new GW_T_DemandDAL().GetWzH(GetPersonInfoData(UserInfo), Reque ...
- BZOJ 2054 疯狂的馒头
并查集把染过色的并在一起.倒着染色. #include<iostream> #include<cstdio> #include<cstring> #include& ...
- BZOJ 1271 秦腾与教学评估
二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 指定 ubuntu server ip
指定 ubuntu server ip,一共就两步. ■编辑配置文件sudo vi /etc/network/interfaces ■重启网络配置sudo /etc/init.d/networking ...