信号处理实验五报告范文第1篇
学院 理学院 班级 地信131 学号 姓名
编写日期:1
2015.5
▶▶作业a
1.LS8_C_20140613_022505_000000_118039_GEOTIFF_L4
2. L5118_39_19860531 ProductDescription用记事本打开,读取头文件,并填写相关信息与相应位置即可
2
3. L5118-39-19960103
4. L7118039_20050815 直接打开以_mtl为后缀的文件,该文件中包含了遥感影像的所有波段
3 5. LM212803919761127 直接打开波段,然后波段合成即可
6. s5kj297_289_10m
7. WORLDVIEW-052606622010_01
4
▶▶作业b
在ENVI中将landsat的4景影像和SPOT-5的1景的影像打开,并联动连接查看同一区域
link displays是根据象元位置来连接的,geographic link是通过地理坐标位置来连接的。
5
由上图可知,将遥感影像联动时亦可实现不同影像同一区域的快速检索,但是我们也可以看到,由于受到各方面因素的影像并不能特别精确的指在同一地方。
▶▶作业c
1.WORLDVIEW-2影像保存为jpg和TIF格式的4-3-2波段合成的假彩色图像。可用同样的方法将SPOT-5影像保存为jpg和tif格式的4-3-2波段合成的假彩色图像
6 2.为landsat的5景影像附上波段的波长,并根据波长用landsat 5的7-4-3波段,保存为jpg和tif格式影像
为波长复制后,导入影像文件各波段显示差异前后对比
转换为JPG格式后可以用看图软件直接打开
7
▶▶作业d
需要对影像进行裁剪,裁剪的基本步骤如下:
1.L5118_39_19860531裁剪前后对比
2. L5118-39-19960103裁剪前后对比
3. L7118039_20050815裁剪前后对比
4. LS8_C_20140613_022505_000000_118039_GEOTIFF_L4裁剪前后对比
▶▶
作业e
将剪裁影像,重采样成10m,重采样的操作主要如下
9
1.L5118_39_19860531重采样前后对比
2. L5118-39-19960103重采样前后对比
10
3. L7118039_20050815重采样前后对比
11
4.LS8_C_20140613_022505_000000_118039_GEOTIFF_L4重采样前后对比
信号处理实验五报告范文第2篇
利用 T DFT 分析信号频谱
一、实验目的
1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境
计算机、MATLAB 软件环境 三、实验基础理论
T 1.DFT 与 与 T DTFT 的关系
有限长序列 的离散时间傅里叶变换 在频率区间的 N 个等间隔分布的点 上的 N 个取样值可以由下式表示:
212 /0( )| ( ) ( ) 0 1Nj knjNk NkX e x n e X k k N 由上式可知,序列 的 N 点 DFT ,实际上就是 序列的 DTFT 在 N 个等间隔频率点 上样本 。
2.利用 T DFT 求 求 DTFT
方法 1 1:由恢复出的方法如下:
由图 2.1 所示流程可知:
101( ) ( ) ( )Nj j n kn j nNn n kX e x n e X k W eN 由上式可以得到:
信号处理实验五报告范文第3篇
利用 T DFT 分析信号频谱
一、实验目的
1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境
计算机、MATLAB 软件环境 三、实验基础理论
T 1.DFT 与 与 T DTFT 的关系
有限长序列 的离散时间傅里叶变换 在频率区间的 N 个等间隔分布的点 上的 N 个取样值可以由下式表示:
212 /0( )| ( ) ( ) 0 1Nj knjNk NkX e x n e X k k N 由上式可知,序列 的 N 点 DFT ,实际上就是 序列的 DTFT 在 N 个等间隔频率点 上样本 。
2.利用 T DFT 求 求 DTFT
方法 1 1:由恢复出的方法如下:
由图 2.1 所示流程可知:
101( ) ( ) ( )Nj j n kn j nNn n kX e x n e X k W eN 由上式可以得到:
信号处理实验五报告范文第4篇
数字图像处理实验报告
专 业:计算机科学技术 学 号:11101110 姓 名:马艳松 提交日期:2014.6.5
实验一 数字图像的读入与显示
一.实验目的:
1.熟悉opencv的开发环境设置
2.读取一幅图像,并显示,掌握Imread, imwrite,imshow的使用
3.掌握opencv中图像的表示,及其属性的含义。 二.实验内容: 配置好visualstudio2010下opnecv开发环境
使用opencv的函数读入一幅图像,并在窗口中显示出来。
三.实验步骤: #include "stdafx.h" #include using namespace cv; using namespace std; void test1() { Mat inputImage=imread("..imageookeach.jpg",1); if(!inputImage.empty()) {
cvNamedWindow("test");
imshow("test",inputImage);
waitKey(); } else
{
cout<<"file open error!";
getchar(); } }
int _tmain(int argc, _TCHAR* argv[]) { test1(); return 0; }
四.实验心得:通过上课实验理解了opencv的配置过程。通过程序实现了图片的成象处理。
实验二 数字图像像素的访问
一.实验目的: 掌握opencv开发环境中对灰度图像及彩色图像中的像素的访问方法
理解mat数据结构
掌握opencv中对图像进行处理的基本过程。 二.实验内容: (1)打开一幅灰度图像,对其进行线性灰度变换(直线方程的参数为k, b),并显示变换前、后的图像。;调整K值,分别取>1, <1, =1, 以及-1,比较不同K值时的图像增强效果。
(2)打开一幅彩色图像,对每个像素进行访问,分别令R、G、B的值为0,查看处理后的图像,并比较原图像的差异。
重点和难点: 掌握灰度图像和彩色图像的像素的值的访问方法。 三.实验步骤: 1r)实验代码
void image1Pixel() {
double durationa,durationb,durationc; double cacStart,cacEnd;
Mat image=imread("..imageookeach.jpg",1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0)); //gray=0.299R+0.587G+0.114b uchar r,g,b; float fgray; cacStart = static_cast(getTickCount()); for(int m=0;m<100;m++) for(int i=0;i
for(int j=0;j
{
b=image.at(i,j)[0];
g=image.at(i,j)[1];
r=image.at(i,j)[2];
fgray=0.299*r+0.587*g+0.114*b;
gray.at(i,j)=saturate_cast(fgray);
}
imshow("",gray);
cacEnd = static_cast(getTickCount()); durationa=(cacEnd-cacStart)/cv::getTickFrequency(); // the elapsed time in ms waitKey(); } 2)实验代码
#include "stdafx.h"
#include using namespace cv; using namespace std;
void image1Pixel() {
{
Mat inputImage=imread("..imageookeach.jpg",1); if(!inputImage.empty()) { double durationa,durationb,durationc; double cacStart,cacEnd; Mat image=imread("..imageookeach.jpg",1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0)); Mat grayGB(image.size().height,image.size().width,CV_8UC3,Scalar(0)); Mat grayRB(image.size().height,image.size().width,CV_8UC3,Scalar(0)); Mat grayRG(image.size().height,image.size().width,CV_8UC3,Scalar(0)); uchar r,g,b; float fgray; cacStart = static_cast(getTickCount()); for(int m=0;m<100;m++) for(int i=0;i
for(int j=0;j
} imshow("org",image); cvNamedWindow("gray"); imshow("gray",gray); waitKey(); b=image.at(i,j)[0]; g=image.at(i,j)[1]; r=image.at(i,j)[2]; //////////////////////////// grayGB.at(i,j)[0] = b; grayGB.at(i,j)[1] = g; grayGB.at(i,j)[2] = 0; //R grayRB.at(i,j)[0] = b; grayRB.at(i,j)[1] = 0;// G grayRB.at(i,j)[2] = r; grayRG.at(i,j)[0] = 0; //B grayRG.at(i,j)[1] = g; grayRG.at(i,j)[2] = r; //////////////////////////// fgray=0.299*r+0.587*g+0.114*b; gray.at(i,j)=saturate_cast(fgray); cvNamedWindow("org"); cacEnd = static_cast(getTickCount()); durationa=(cacEnd-cacStart)/cv::getTickFrequency(); } void test1()
}
} cvNamedWindow("test"); imshow("test",inputImage); waitKey(); else {
} cout<<"file open error!"; getchar(); int _tmain(int argc, _TCHAR* argv[]) {
}
image1Pixel(); test1(); return 0; 心得体会:通过本次试验,我了解并大致掌握灰度图像和彩色图像的像素的值的访问方法。由于之前很少练习这方面的内容,试验过程中遇到了一些问题,好在在别人的帮助下和向别人咨询终于了解了这方面知识的大致框架和原理。由此更坚定了我学习下去的信心和动力!
实验三 图像的平滑
一.实验目的: 掌握opencv开发环境中对灰度图像及彩色图像中的像素的访问方法
掌握opencv中对图像进行处理的基本过程。
掌握均值平滑和中值滤波的基本原理
二.实验内容: (1)打开一幅灰度图像,对图像进行3*3(包括中心点)的邻域平均处理。
(2)对原图进行3*3(包括中心点)的中值滤波处理。
(3)比较原图像与邻域平均的图像、中值滤波后的图像的差异
三.实验步骤: 1)中值滤波处理
for(int i=1;i
{
for(int j=1;j
{
int
imshow("中值滤波",gray);
cacEnd = static_cast(getTickCount()); durationa=(cacEnd-cacStart)/cv::getTickFrequency(); waitKey(); } int GetMidNum(int n[]) {
for (int i=0;i<9;i++)
for(int j = 0 ;j<8;j++)
{
if (n[j]>n[j+1])
{
int temp ;
temp = n[j+1];
n[j+1] = n[j];
n[j]= temp;
}
}
return n[4]; }
void test4_4() { int count[256];//存放各个像素值对应的个数
float hist[256],sumHist[256]; uchar grayHist[256]; for (int i=0;i<256;i++) {
count[i]=0;
hist[i]=0; a[9]={gray.at(i-1,j),gray.at(i,j),gray.at(i+1,j),
gray.at(i-1,j-j),gray.at(i,j-1),gray.at(i+1,j-1)
+gray.at(i-1,j+1),gray.at(i,j+1),gray.at(i+1,j+1)};
gray.at(i,j)=GetMidNum(a);
}
}
} int _tmain(int argc, _TCHAR* argv[]) { image1Pixel(); //Test3();
//test4_4(); return 0; }
2)邻域平均
void image1Pixel() sumHist[i]=0; grayHist[i]=0; } Mat image=imread("..imageookeach.jpg",0); for(int i=0;i(i); for(int j=0;j
count[data[j]]++; } } for(int i=0;i<256;i++) hist[i]=((float)count[i])/(image.size().height*image.size().width); sumHist[0]=hist[0]; for(int i=1;i<256;i++) sumHist[i]=sumHist[i-1]+hist[i]; for(int i=0;i<256;i++) grayHist[i]=saturate_cast(sumHist[i]*255); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0)); for(int i=0;i(i); uchar* grayData=gray.ptr(i); for(int j=0;j
grayData[j]=grayHist[data[j]]; } } cvNamedWindow("tset"); imshow("org",image); cvNamedWindow("hist"); imshow("hist",gray); waitKey(); {
double durationa,durationb,durationc; double cacStart,cacEnd;
Mat image=imread("..imageookeach.jpg",1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0)); //gray=0.299R+0.587G+0.114b uchar r,g,b; float fgray; cacStart = static_cast(getTickCount()); for(int m=0;m<100;m++) for(int i=0;i
for(int j=0;j
{
b=image.at(i,j)[0];
g=image.at(i,j)[1];
r=image.at(i,j)[2];
fgray=0.299*r+0.587*g+0.114*b;
gray.at(i,j)=saturate_cast(fgray);
}
imshow("",gray);
cacEnd = static_cast(getTickCount()); durationa=(cacEnd-cacStart)/cv::getTickFrequency(); // the elapsed time in ms waitKey(); }
void Test3() {
int GetMidNum(int n[]); double durationa,durationb,durationc; double cacStart,cacEnd;
Mat image=imread("..imageookeach.jpg",1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0)); Mat grayGB(image.size().height,image.size().width,CV_8UC3,Scalar(0)); Mat grayRB(image.size().height,image.size().width,CV_8UC3,Scalar(0)); Mat grayRG(image.size().height,image.size().width,CV_8UC3,Scalar(0)); //gray=0.299R+0.587G+0.114b uchar r,g,b; float fgray; cacStart = static_cast(getTickCount()); for(int m=0;m<100;m++)
for(int i=0;i
b=image.at(i,j)[0];
g=image.at(i,j)[1];
r=image.at(i,j)[2];
}
实验心得:通过这次试验,我明白了,平滑技术用于平滑图像的噪声,平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均值或中值。但是这些很容易引起边缘的模糊,常用的有均值滤波、中值滤波,在使用时,针对不同的噪声,也需要不同的滤波法,没有哪种方法是绝对好,必须具体情况具体分析。 最后比较三种平滑效果,八点平滑最好,说明对高斯噪声平滑滤波效果较好。中值滤波基本把椒盐噪声都滤去了,说明中值滤波对椒盐噪声平滑效果比高斯噪声好。
fgray=0.299*r+0.587*g+0.114*b;
gray.at(i,j)=saturate_cast(fgray); } imshow("原图",gray); for(int i=1;i
for(int j=1;j
{
gray.at(i,j)= (gray.at(i-1,j)+gray.at(i,j)+gray.at(i+1,j)+
gray.at(i-1,j-j)+gray.at(i,j-1)+gray.at(i+1,j-1)
+gray.at(i-1,j+1)+gray.at(i,j+1)+gray.at(i+1,j+1))/9;
}
imshow("邻域平均",gray); 实验四 图像的直方图均衡化
一.实验目的: 掌握直方图均衡化的基本步骤及实现方法
掌握opencv中对图像进行处理的基本过程。
二.实验内容: (1)打开一幅灰度图像,对图像进行直方图均衡化处理。
(2)比较原图像与均衡化的图像的差异。
(3)要求自己按照课本介绍的均衡化的步骤在opencv下实现直方图均衡化处理。
三.实验步骤:void test1() { Mat inputImage=imread("..imageookeach.jpg",1);
if(!inputImage.empty()) {
cvNamedWindow("test");
imshow("test",inputImage);
waitKey(); } else
{
cout<<"file open error!";
getchar(); } } void test4() { int count[256]; float hist[256],sumHist[256]; uchar grayHist[256];
for (int i=0;i<256;i++) {
count[i]=0;
hist[i]=0;
sumHist[i]=0;
grayHist[i]=0; }
Mat image=imread("..imageookeach.jpg",0);
for(int i=0;i
uchar* data=image.ptr(i);
for(int j=0;j
{
count[data[j]]++;
} } for(int i=0;i<256;i++)
hist[i]=((float)count[i])/(image.size().height*image.size().width); sumHist[0]=hist[0]; for(int i=1;i<256;i++)
sumHist[i]=sumHist[i-1]+hist[i]; for(int i=0;i<256;i++)
grayHist[i]=saturate_cast(sumHist[i]*255);
Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0));
for(int i=0;i
uchar* data=image.ptr(i);
uchar* grayData=gray.ptr(i);
for(int j=0;j
{
grayData[j]=grayHist[data[j]];
} }
cvNamedWindow("org");
imshow("org",image);
cvNamedWindow("hist");
imshow("hist",gray);
waitKey();
} int _tmain(int argc, _TCHAR* argv[]) { //test1(); test4(); return 0; }
信号处理实验五报告范文第5篇
数字信号处理
姓名:
殷超宇
班级:
14060142 学号:
1406014226
实验题目:Z Z 变换及离散时间系统分析
指导教师:
张志杰
分数:
一
实验题目:
Z 变换及离散时间系统分析
二
实验目的:
1、通过本实验熟悉 Z 变换在离散时间系统分析中的地位和作用。
2、掌握并熟练使用有关离散系统分析的 MATLAB 调用函数及格式,以深入理解离散时间系统的频率特性。
三
实验内容:
给定系统 ) 8 .0 /( 2 .0 ) (2 z z H ,编程并绘出系统的单位阶跃响应 y(n),频率响应 ) e (jwH ,并给出实验数据与代码。
四
参考代码:
详见《数字信号处理上机实验指导》(班群里有)
五
实验代码(代码从 B MATLAB )
软件复制粘贴于此处,教师检查重点): :
clear;
x=ones(100);% x(n)=1,n=1~100;
t=1:100;% t 用于后面的绘图;
b=[0,0,-0.2]; % 形成向量 b;
a=[1,0,0.8]; % 形成向量 a;
y=filter(b,a,x);% 求所给系统的阶跃响应;
plot(t,y,"k-"); grid on;
ylabel(" y(n)")
xlabel("n")
六
实验数据(图像或表格复制粘贴于此处,教师检查重点):
七
实验心得与收获(可手写):
信号处理实验五报告范文第6篇
数字信号处理
姓名:
殷超宇
班级:
14060142 学号:
1406014226
实验题目:Z Z 变换及离散时间系统分析
指导教师:
张志杰
分数:
一
实验题目:
Z 变换及离散时间系统分析
二
实验目的:
1、通过本实验熟悉 Z 变换在离散时间系统分析中的地位和作用。
2、掌握并熟练使用有关离散系统分析的 MATLAB 调用函数及格式,以深入理解离散时间系统的频率特性。
三
实验内容:
给定系统 ) 8 .0 /( 2 .0 ) (2 z z H ,编程并绘出系统的单位阶跃响应 y(n),频率响应 ) e (jwH ,并给出实验数据与代码。
四
参考代码:
详见《数字信号处理上机实验指导》(班群里有)
五
实验代码(代码从 B MATLAB )
软件复制粘贴于此处,教师检查重点): :
clear;
x=ones(100);% x(n)=1,n=1~100;
t=1:100;% t 用于后面的绘图;
b=[0,0,-0.2]; % 形成向量 b;
a=[1,0,0.8]; % 形成向量 a;
y=filter(b,a,x);% 求所给系统的阶跃响应;
plot(t,y,"k-"); grid on;
ylabel(" y(n)")
xlabel("n")
六
实验数据(图像或表格复制粘贴于此处,教师检查重点):
七
实验心得与收获(可手写):