MATLAB 语言基础知识 数据类型 数值类型 整数算术运算

本文说明如何对表示信号和图像的整数数据执行算术运算。

加载整数信号数据

加载由四种乐器发出的信号组成的测量数据集,并将数据中 8 位和 16 位的 A 至 D 结果保存为 int8、int16 和 uint16。时间存储为 uint16。

load integersignal

% Look at variables
whos Signal1 Signal2 Signal3 Signal4 Time1
Name            Size            Bytes  Class     Attributes

  Signal1      7550x1              7550  int8                
  Signal2      7550x1              7550  int8                
  Signal3      7550x1             15100  int16               
  Signal4      7550x1             15100  uint16              
  Time1        7550x1             15100  uint16      

对数据绘图

首先,对两个信号绘图以查看信号范围。

plot(Time1, Signal1, Time1, Signal2);
grid;
legend('Signal1','Signal2');

在这里插入图片描述

可能需要对这些值进行缩放以计算信号代表的实际物理值,例如电压。

处理数据

可以对整数执行标准算术运算,例如 +、-、* 和 /。假设要计算 Signal1 和 Signal2 的和。

SumSig = Signal1 + Signal2; % Here we sum the integer signals.

现在,对和信号绘图并查看饱和位置。

cla;
plot(Time1, SumSig);
hold on
Saturated = (SumSig == intmin('int8')) | (SumSig == intmax('int8')); % Find where it has saturated
plot(Time1(Saturated),SumSig(Saturated),'rd')
grid
hold off

在这里插入图片描述

标记所示即信号饱和的位置。

加载整数图像数据

接下来,看一下对一些图像数据执行的算术运算。

street1 = imread('street1.jpg'); % Load image data
street2 = imread('street2.jpg');
whos street1 street2
  Name           Size                Bytes  Class    Attributes

  street1      480x640x3            921600  uint8              
  street2      480x640x3            921600  uint8   

可以看出,图像为 24 位颜色,存储为三个 uint8 数据平面。

显示图像

显示第一个图像。

cla;
image(street1); % Display image
axis equal
axis off

在这里插入图片描述

显示第二个图像

image(street2); % Display image
axis equal
axis off

在这里插入图片描述

缩放图像

可以按一个双精度常量缩放图像,但仍保持以整数形式存储图像。例如,

duller = 0.5 * street2; % Scale image with a double constant but create an integer
whos duller
  Name          Size                Bytes  Class    Attributes

  duller      480x640x3            921600  uint8      
subplot(1,2,1);
image(street2);
axis off equal tight
title('Original');  % Display image

subplot(1,2,2);
image(duller);
axis off equal tight
title('Duller');    % Display image

在这里插入图片描述

添加图像

现在,将两个街道图像叠加在一起,并对重影结果绘图。

combined = street1 + duller; % Add |uint8| images
subplot(1,1,1)
cla;
image(combined); % Display image
title('Combined');
axis equal
axis off

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结冰架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值