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题:输入字 ...
随机推荐
- win10 ctrl + 空格 热键取消
关键:添加English,并上移到第一,即开机默认即可.Win8+不用修改注册表的,只有win7里才可能需要修改注册表. http://superuser.com/questions/327479/c ...
- 继承自NSObject的类不能用CGRect
我用的是Xcode6.2. 系统默认没有pch文件. 所以没有自动导入UIKit包. 我在继承NSObject类里也不能用CGRect或者UI开头的控件,原因也是Xcode6.2以后版本 缺少UIKi ...
- HTTPS Everywhere – 保障隐私和信息安全的利器
HTTPS Everywhere 是一款 Chrome 扩展程序,对于支持 HTTPS 的网站默认打开 HTTPS 加密传输来保障信息安全(HTTPS 介绍). HTTPS Everywhere 受到 ...
- 【python】dict。字典
特点:以空间换取时间,使用HASH算法通过key算出了value的内存地址,建立索引,拿到key后查找速度快,但内存浪费多 因为是用key值算的内存地址,所以key为不可变变量 (set,和dict类 ...
- cf--1C
//Accepted 0 KB 60 ms //给出正多变形上的三个点,求正多形的最小面积 //记三个点之间的距离a,b,c; //由余弦定理得cosA //从而可求出sinA,和正多边形所在外接圆的 ...
- hdu1878 欧拉回路
//Accepted 1240 KB 250 ms //水题 欧拉回路 //连通+节点度均为偶数 #include <cstdio> #include <cstring> #i ...
- PAT 06-2 字符串字母大小写转换
没什么好说的,记得使用ctype.h就好了,谭浩强那本书就介绍了,再不使用就太对不起他老人家了:有一点小小的地方需要注意一下,&&的优先级比=号高,所以getchar()两边没有括号的 ...
- SQL Server 按某一字段分组 取 最大 (小)值所在行的数据
SQL Server 按某一字段分组 取 最大 (小)值所在行的数据 -- 按某一字段分组 取 最大 (小)值所在行的数据 -- (爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23 ...
- Piggy-Bank_完全背包
Description Before ACM can do anything, a budget must be prepared and the necessary financial suppor ...
- 1、SQL基础整理(基本查询)
分离.附加.备份.还原 --去重 select distinct 列名from表名 --更新 update fenshu set name = ‘李四’where code = 9 --更改表名 sp ...