matlab 高斯模糊非库函数实现方式
2017-12-01 10:44
711 查看
简单讲一下原理和思路:
高斯模糊就是让一个高斯矩阵和所要模糊的矩阵相点乘(即两个矩阵对应位置的两个数相乘),然后把所得矩阵的各项之和相加,即为模糊中心点的值。
所谓高斯矩阵就是由高斯函数(即正态分布函数)得到的矩阵。
二维正态分布函数:
此外,要注意的是由此函数得到的矩阵之和小于1,需要均匀化,使得矩阵之和为1。
贴我的matlab程序代码:
模糊效果:
在智能车上的应用效果:
高斯模糊就是让一个高斯矩阵和所要模糊的矩阵相点乘(即两个矩阵对应位置的两个数相乘),然后把所得矩阵的各项之和相加,即为模糊中心点的值。
所谓高斯矩阵就是由高斯函数(即正态分布函数)得到的矩阵。
二维正态分布函数:
此外,要注意的是由此函数得到的矩阵之和小于1,需要均匀化,使得矩阵之和为1。
贴我的matlab程序代码:
clc, clear, close all 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);%显示灰度模糊图
模糊效果:
在智能车上的应用效果:
相关文章推荐
- matlab高斯2D模糊的函数
- 高斯模糊-虚化的实现方式
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 5,imshow绘图方式以及主辅图像缓存
- matlab实现S函数的五种方式
- Android 实现高斯模糊的几种方式
- 用指针方式实现strcat(s,t)函数
- gauss 函数(可以找高斯模糊的论文)
- 高斯判别分析(附Matlab实现)
- Android一秒实现高斯模糊特效马赛克特技
- Android 高斯模糊效果从319ms到3ms的优化实现
- 如何实现在Oracle中应用存储过程调用MatLab函数(3)
- 多态的实现方式,继承与模版函数
- 利用 Python 实现多线程多任务提交 - matlab 函数示例
- 离散时间信号常见函数的实现(matlab)
- 高斯模糊算法的设计与实现 GaussianBlur
- 高斯模糊效果实现方案及性能对比
- matlab自带函数实现BP神经网络
- PLSql -- 递归查询的另几种实现方式(函数/存储过程)
- 机器学习笔记----Fuzzy c-means(FCM)模糊聚类详解及matlab实现
- matlab 实现 kernel SVD 高斯核