Matlab之加法平均降噪

前言

这篇博客主要记录前几天在上计算机图像处理时遇到的一些问题,以及一些收获!

基础语法

注释快捷键:Ctrl + R
取消注释快捷键:Ctrl + T

% 求 1 - 100的和
s = 0;
% 注意,这里1 - 100都取得到!
for i = 1:100
	% 注意,s += i;是错误的,Matlab不支持!
    s = s + i;
end
% 打印输出
disp(s);
% 定义函数求最大公约数
% 注:函数名与文件名要一致,这样才可调用
function result = Gcd(x,y)
if y > x
    t = x;
    x = y;
    y = t;
end
% 注:x % y是不允许的,因为注释符是 % ,可以用 mod。同时,!= 也是不允许的,要用~=
while((mod(x,y) ~= 0))
    r = mod(x,y);
    x = y;
    y = r;
end
    result = y;
end

加噪声

常见的噪声有:

  • gaussian:高斯噪声
  • localvar:均值高斯白噪声
  • poisson:泊松噪声
  • alt & pepper: 盐椒噪声
  • speckle:乘性噪声
% 读入图像
img = imread("test.bmp");
% figure 创建一个新的窗口,所有参数采用默认。imshow展示图像!
figure;imshow(img);
% 给指定图像加高斯噪声
img_noisy_1 = imnoise(img,"gaussian",0.02);
% 展示图像
figure;imshow(img_noisy);

图像加法降噪

img = imread("test.bmp");
figure;imshow(img);
img_noisy_1 = imnoise(img,"gaussian",0.02);
figure;imshow(img_noisy);
for i = 1 : 9
	% 注意,图像加法会超出数据范围uint8  0 ~ 255;需要进行数据类型的转换!
    img = imadd(uint16(img),uint16(img_noisy_1));
end
img = img / 10;
% 之后,还要转回uint8输出!
figure;imshow(uint8(img));

关于matlab的存储格式的数据类型

matlab使用三种存储格式来存储图像。

  • uint8 (8 位无符号整数)、
  • uint16 (16 位无符号整数)
  • double (双精度)
    大多数图像文件格式采用 8位数据存储像素值,将这些文件读入内存后,matlab 都将其存储为
    uint8 类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值