大三上学期学的数字信号处理,Matlab大实验可以自选题,想到老师上课说的IIR、FIR的区别,借助图像观察两种滤波器的区别。当然,现在大家使用的图像处理算法是现代滤波器,与经典滤波器分析问题的角度不同,但本质上还是对图像的滤波。本文为我基于Matlab语言实现的IIR、FIR滤波。
一、实验任务
1. 利用 Matlab 实现简单的图像操作
2. 为图像加上噪声,并用Matlab制作FIR、IIR带限滤波器,观察处理效果
3. 利用 Simulink 搭建简单的图像处理工程
4. 探究 Matlab 和 ModelSim 结合的FPGA图像处理仿真平台
二、主要实验仪器及材料
Windows 10操作系统、Matlab2018a
三、基于Matlab的图像滤波
1.图像的读入
实验内容:
通过Matlab读入彩色图像,并获得其长,宽等基本信息。
实验步骤:
在Matlab工程目录下,保存一幅彩色图片,命名为`image.jpg`。
使用imread函数可读入图像,并返回一个对象;使用size函数可返回函数的长宽信息;由于图像要通过滤波器,使用rgb三通道需要分别设计三种滤波器,为实验过程增加了不必要的工作量,所以本次实验处理灰色图像,使用rgb2gray函数可将rgb图像转化成灰度图。
%% 图像的读取以及转换
rawImg=imread('image.jpg'); %读取jpg图像
grayImg=rgb2gray(rawImg); %生成灰度图像
[row,col]=size(grayImg); %求图像长宽
生成的灰度图像如下图所示:
2.添加噪声
实验内容:
为原图像添加噪声,为验证带限滤波器和非带限滤波器(中值滤波、卡尔曼