高斯模糊 matlab

close all;
image = imread('66_input.png');
figure(1),
imshow(image);
w=fspecial('gaussian',[5 5],5);
im=imfilter(image,w);
figure(2),
imshow(im);

%imwrite(im,'result.jpg','jpg');

fspecial第一个参数为高斯类型的滤波算子,核的宽度尺寸,滤波器的标准差。核的尺寸是标准差的3倍时,包含了99%的信息。

相关是滤波器模板移过图像并计算计算每个位置乘积之和的处理
卷积的机理相似,但滤波器首先要旋转180度
可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。
而计算相关过程中不需要旋转相关核。
  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高斯模糊是一种常用的图像处理方法,通过使用高斯函数生成一个权重矩阵,将该矩阵与原图像进行卷积操作,从而实现图像的模糊效果。在Matlab中,可以使用以下代码实现高斯模糊: ```matlab img_origin=imread('C:\Users\izhxxx\Desktop\论文\canny\lena.png');%读取图片文件 img_gray=rgb2gray(img_origin);%灰度化 Sigma=1.5;%σ为高斯模糊半径,半径越大模糊程度越大 for x = 1: 3 % 垂直方向 for y = 1:3 % 水平方向 WeightMatrix(x, y)=exp(-((x-1)^2+(y-1)^2)/(2*Sigma^2))/(2*pi*Sigma^2); end end WeightMatrix=WeightMatrix./sum(sum(WeightMatrix)); %使该3*3矩阵之和等于1 [row, col] = size( img_gray ); for i = 1: row % 垂直方向 for j = 1:col % 水平方向 if i==1 || j==1 || i==row || j==col img_undist(i, j)=img_gray(i, j);%边缘未处理 else miniMatrix=single(img_gray(i-1:i+1, j-1:j+1)); img_undist(i, j)=sum(sum( miniMatrix.*WeightMatrix ));%高斯模糊 end end end figure(1); subplot(121); imshow(img_gray);%显示灰度图 subplot(122); imshow(img_undist);%显示灰度模糊图 ``` 该代码首先读取图像,然后将其转换为灰度图像。接下来,设定高斯模糊半径,生成一个权重矩阵WeightMatrix,使其满足高斯分布的特性,并通过除以矩阵元素之和使其之和等于1。然后,遍历原图像的所有像素,对于边缘像素不进行处理,其他像素则取其周围3*3范围内的像素灰度值与权重矩阵对应元素相乘并求和,得到模糊后的像素值。最后,使用imshow函数分别显示原图和模糊后的图像。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值