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题:输入字 ...
随机推荐
- 神奇的Noip模拟试题第一试 合理种植 枚举+技巧
1.合理种植 (plant.pas/.c/.cpp) [问题描述] 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职.他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干. 于是他如愿以偿 ...
- 【干货来了】2014年K2房地产IT分享峰会
2014年K2房地产IT分享峰会已圆满落幕,嘉宾们纷纷出招,分享干货,现场妙语连珠不断,高潮迭起. 主题:流程驱动的地产业务管控平台 嘉宾:王寿欣(卓越地产战略与运营管理部 副总经理) 卓越地产应用K ...
- 详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别 (完整代码)
一.初步了解--指针与取地址 先看程序: #include<cstdio> int main(void) { int num = 7; int *p = # printf( ...
- static关键字的理解
#include<stdio.h> int counter(int i){ static int count=0;//编译时只运行一次 count=count+i; return coun ...
- 无刷新 checkbox列表的删除
前台 JS : function ModelDelete() { var checkvalues = null; var checValue = $("#dom1").find(& ...
- SharePoint表单和工作流 - Nintex篇(七)
博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 在工作流设计面板点击Close返回到列表页面,切换到List标签,选择"Nintex Forms&qu ...
- 分享Windows Server 2012 R2的获取正版密钥方法
然后使用“我有ISIC卡”验证,目前可用号码:S420546009858. 分享Windows Server 2012 R2的获取正版密钥方法. 首先登陆dreamspark注册一个账号https:/ ...
- iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020)
看看IIS的网站,惊人的发现default web site是停止状态.印象中没有停止它啊.右键->管理网站->启动.点击启动后居然弹出:“另一个程序正在使用此文件,进程无法访问.(异常来 ...
- 登陆sqlserver及修改端口号 (转)
在一台计算机上面同时安装两个sql server数据库实例,第一次安装默认为机器名,端口号为1433 1.如果不知道服务器名,却想登陆的话可以直接输入127.0.0.1登陆之后,在新建查询中输入:SE ...
- poj1179
//Accepted 244 KB 0 ms //区间dp //石子合并模型 #include <cstdio> #include <cstring> #include < ...