MATLAB的图像显示方法-matlab图像处理第16期(附完整代码)

MATLAB的图像显示方法

目的

了解 MATLAB 的基本功能及操作方法,掌握如何使用 MATLAB 产生和显示典型离散信号。通过学习 MATLAB 中图像处理的基本命令与方法,帮助用户有效进行数字信号处理和图像处理任务。

内容

在 MATLAB 中,序列通常用矩阵向量表示,但是它不包含采样信息(即序列的位置信息)。因此,表示一个序列时需要建立两个向量:一个是时间序列(或称位置序列)n,另一个是取值序列 x。例如,时间序列可以表示为:

n = [..., -3, -2, -1, 0, 1, 2, 3, ...]

对应的取值序列 x 可以表示为:

x = [..., 6, 3, 5, 2, 1, 7, 9, ...]

一般情况下,程序从 n=0 的位置开始。对于多维信号,需要使用矩阵表示,其中矩阵的每个列向量表示一个一维信号。

在数字信号处理中,常见的信号类型包括:指数信号、正弦信号、余弦信号、方波信号和锯齿波信号等。在 MATLAB 中,可以分别使用 expsincossquaresawtooth 等函数来生成这些信号。

用 MATLAB 编写程序,产生长度为 N(由输入确定)的序列:
  1. 单位冲击响应序列

    使用 MATLAB 中的 zeros 函数实现单位冲击响应序列:

    t = -20:1:20;
    X = zeros(size(t));
    X(21) = 1;  % 设置冲击响应在n=0处为1
    plot(t, X);
    
  2. 单位阶跃序列

    使用 ones 函数实现单位阶跃序列:

    t = -20:1:20;
    X = zeros(size(t));
    X(21:41) = ones(1, 21);  % 设置阶跃响应从n=0开始为1
    plot(t, X);
    
  3. 正弦序列

    正弦序列通过 sin 函数生成:

    N0 = 20;
    w = 0.5;  % 正弦波的频率
    n = -N0:0.5:N0;
    y = sin(w * n);
    plot(n, y);
    
  4. 指数序列

    指数序列的表达式为 X(n) = a^n,可以通过以下代码生成:

    N0 = 20;
    a = 1.1;  % 指数衰减因子
    n = -N0:2:N0;
    X = a .^ n;
    plot(n, X);
    
  5. 复指数序列

    使用 exp 函数生成复指数序列,并绘制其实部、虚部、幅值和相位图:

    a = -0.2; b = 0.5; K0 = 4; N = 40;
    n = -N:1:N;
    t = K0 * exp(a + 1i * b) .^ n;
    
    % 绘制实部、虚部、幅值和相位
    figure;
    subplot(2, 2, 1);
    plot(n, real(t)); title('Real Part');
    subplot(2, 2, 2);
    plot(n, imag(t)); title('Imaginary Part');
    subplot(2, 2, 3);
    plot(n, abs(t)); title('Magnitude');
    subplot(2, 2, 4);
    plot(n, angle(t)); title('Phase');
    
练习
  1. 图像读写和显示函数的使用方法

    使用 MATLAB 进行图像读写和显示:

    RGB = imread('D:\pic\DIP3E_CHO1\Fig0101(1921 digital image).tif');  % 读取图像
    
  2. 图像显示

    • 单个图像显示

      f = imread('D:\pic\DIP3E_CHO1\Fig0101(1921 digital image).tif');
      whos f;  % 查看图像变量信息
      imshow(f);  % 显示图像
      [m, n] = size(f);  % 输出图像大小
      
    • 同屏显示多个图像:使用 subplot 命令将显示区域分成多个子区域,在不同区域中显示不同图像:

      figure(1);
      subplot(2, 2, 1);  % 取2×2个子屏中的第一个子屏
      imshow(I1);  % 显示第一个图像
      subplot(2, 2, 4);  % 取2×2个子屏中的第四个子屏
      imshow(I4);  % 显示第四个图像
      
  3. 数字图像处理中常用的 MATLAB 函数

    • size():获取数组的大小。
    • zeros():生成一个全为零的数组。
    • fft2()ifft2():二维快速傅里叶变换和反变换。
    • imhist():计算图像的直方图。
    • histeq():图像直方图均衡化。
    • imrotate():图像旋转。
    • imnoise():添加噪声到图像中。
    • edge():边缘检测。
    • title():设置图像标题。
    • xlabel()ylabel():设置图像坐标轴标签。

参考文献:

  1. Rafael C. Gonzalez, Richard E. Woods, and Steven L. Eddins. 2003. Digital Image Processing Using MATLAB. Prentice-Hall, Inc., USA.
  2. 阮秋琦. 数字图像处理(MATLAB版) [M]. 北京:电子工业出版社, 2014.
  3. 冈萨雷斯. 数字图像处理(第三版) [M]. 北京:电子工业出版社, 2011.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值