图像空间滤波

  • 图像的空间滤波
    • 均值滤波
    • 中值滤波
  • MATLAB程序
  • 运行结果

图像的空间滤波

空间域是指图像平面本身、包含图像像素的平面。空间域图像处理是指直接对图像中的像素进行操作。

线性空间滤波器也称为模板、卷积模板、卷积核。

均值滤波

均值滤波器,也称为线性平滑滤波器,其输出是包含在滤波器模板邻域内的像素灰度的平均值。可用于(1)降低噪声;(2)伪轮廓效应的平滑处理;(3)去除图像中的不相关细节。

中值滤波

中值滤波器对处理脉冲噪声(椒盐噪声)非常有效,但是对一些细节多,特别是点、线、尖顶的图像不宜采用中值滤波。

MATLAB程序

MATLAB程序演示了对于含有椒盐噪声的图像,进行中值滤波和均值滤波处理。

clc
clear
close allpicture=imread('test.jpg');% 读取原始图像的R、G、B值
picture_r=picture(:,:,1);
picture_g=picture(:,:,2);
picture_b=picture(:,:,3);[M,N,C]=size(picture);figure;
imshow(picture);
title('原始图像');%% 加椒盐噪声
Noise_picture=imnoise(picture,'salt & pepper',0.1);% 噪声密度0.1Noise_picture_r=Noise_picture(:,:,1);
Noise_picture_g=Noise_picture(:,:,2);
Noise_picture_b=Noise_picture(:,:,3);figure;
imshow(Noise_picture);
title('加椒盐噪声');%% 中值滤波
Mid_Filtered_picture=uint8(zeros(M,N,C));pixel=zeros(1,9);
for k=1:3 % RGB三通道for i=1:Mfor j=1:Nif(i>1 && i<M && j>1 && j<N) % 中间部分pixel(1:3) = Noise_picture(i-1:i+1, j-1, k);pixel(4:6) = Noise_picture(i-1:i+1, j  , k);pixel(7:9) = Noise_picture(i-1:i+1, j+1, k);pixel=sort(pixel);Mid_Filtered_picture(i,j,k)=pixel(5);elseif(i==1 && j>1 && j<N) % 第一行中间部分pixel(1:2) = Noise_picture(i:i+1, j-1, k);pixel(3:4) = Noise_picture(i:i+1, j  , k);pixel(5:6) = Noise_picture(i:i+1, j+1, k);pixel=sort(pixel(1:5));Mid_Filtered_picture(i,j,k)=pixel(3);elseif(i==M && j>1 && j<N) % 最后一行中间部分pixel(1:2) = Noise_picture(i-1:i, j-1, k);pixel(3:4) = Noise_picture(i-1:i, j  , k);pixel(5:6) = Noise_picture(i-1:i, j+1, k);pixel=sort(pixel(1:5));Mid_Filtered_picture(i,j,k)=pixel(3);elseif(j==1 && i>1 && i<M) % 第一列中间部分pixel(1:3) = Noise_picture(i-1:i+1, j  , k);pixel(4:6) = Noise_picture(i-1:i+1, j+1, k);pixel=sort(pixel(1:5));Mid_Filtered_picture(i,j,k)=pixel(3);elseif(j==N && i>1 && i<M) % 最后一列中间部分pixel(1:3) = Noise_picture(i-1:i+1, j-1, k);pixel(4:6) = Noise_picture(i-1:i+1, j  , k);pixel=sort(pixel(1:5));Mid_Filtered_picture(i,j,k)=pixel(3);elseif(i==1 && j==1) % 左上角pixel(1:2) = Noise_picture(i:i+1, j  , k);pixel(3:4) = Noise_picture(i:i+1, j+1, k);pixel=sort(pixel(1:4));Mid_Filtered_picture(i,j,k)=pixel(2);elseif(i==1 && j==N) % 右上角pixel(1:2) = Noise_picture(i:i+1, j-1, k);pixel(3:4) = Noise_picture(i:i+1, j  , k);pixel=sort(pixel(1:4));Mid_Filtered_picture(i,j,k)=pixel(2);elseif(i==M && j==N) % 右下角pixel(1:2) = Noise_picture(i-1:i, j-1, k);pixel(3:4) = Noise_picture(i-1:i, j  , k);pixel=sort(pixel(1:4));Mid_Filtered_picture(i,j,k)=pixel(2);elseif(i==M && j==1) % 左下角pixel(1:2) = Noise_picture(i-1:i, j  , k);pixel(3:4) = Noise_picture(i-1:i, j+1, k);pixel=sort(pixel(1:4));Mid_Filtered_picture(i,j,k)=pixel(2);endendend
endfigure;
imshow(Mid_Filtered_picture);
title('中值滤波');%% 均值滤波
Average_Filtered_picture=uint8(zeros(M,N,C));pixel=zeros(1,9);
mean_amp=0;
for k=1:3 % RGB三通道for i=1:Mfor j=1:Nif(i>1 && i<M && j>1 && j<N) % 中间部分pixel(1:3) = Noise_picture(i-1:i+1, j-1, k);pixel(4:6) = Noise_picture(i-1:i+1, j  , k);pixel(7:9) = Noise_picture(i-1:i+1, j+1, k);mean_amp=mean(pixel);Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==1 && j>1 && j<N) % 第一行中间部分pixel(1:2) = Noise_picture(i:i+1, j-1, k);pixel(3:4) = Noise_picture(i:i+1, j  , k);pixel(5:6) = Noise_picture(i:i+1, j+1, k);mean_amp=mean(pixel(1:5));Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==M && j>1 && j<N) % 最后一行中间部分pixel(1:2) = Noise_picture(i-1:i, j-1, k);pixel(3:4) = Noise_picture(i-1:i, j  , k);pixel(5:6) = Noise_picture(i-1:i, j+1, k);mean_amp=mean(pixel(1:5));Average_Filtered_picture(i,j,k)=mean_amp;elseif(j==1 && i>1 && i<M) % 第一列中间部分pixel(1:3) = Noise_picture(i-1:i+1, j  , k);pixel(4:6) = Noise_picture(i-1:i+1, j+1, k);mean_amp=mean(pixel(1:5));Average_Filtered_picture(i,j,k)=mean_amp;elseif(j==N && i>1 && i<M) % 最后一列中间部分pixel(1:3) = Noise_picture(i-1:i+1, j-1, k);pixel(4:6) = Noise_picture(i-1:i+1, j  , k);mean_amp=mean(pixel(1:5));Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==1 && j==1) % 左上角pixel(1:2) = Noise_picture(i:i+1, j  , k);pixel(3:4) = Noise_picture(i:i+1, j+1, k);mean_amp=mean(pixel(1:4));Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==1 && j==N) % 右上角pixel(1:2) = Noise_picture(i:i+1, j-1, k);pixel(3:4) = Noise_picture(i:i+1, j  , k);mean_amp=mean(pixel(1:4));Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==M && j==N) % 右下角pixel(1:2) = Noise_picture(i-1:i, j-1, k);pixel(3:4) = Noise_picture(i-1:i, j  , k);mean_amp=mean(pixel(1:4));Average_Filtered_picture(i,j,k)=mean_amp;elseif(i==M && j==1) % 左下角pixel(1:2) = Noise_picture(i-1:i, j  , k);pixel(3:4) = Noise_picture(i-1:i, j+1, k);mean_amp=mean(pixel(1:4));Average_Filtered_picture(i,j,k)=mean_amp;endendend
endfigure;
imshow(Average_Filtered_picture);
title('均值滤波');

运行结果




图像处理(2)- 空间滤波相关推荐

  1. 图像处理之空间滤波二: 平滑滤波器

    图像处理之空间滤波二: 平滑滤波器 平滑滤波器 ​ 平滑滤波器用于模糊处理和降低噪声. 常应用于预处理任务中, 例如在大目标提取之前去除图像中的一些琐碎细节, 以及桥接直线或曲线的缝隙, 通过线性滤波 ...

  2. 《数字图像处理》空间滤波学习感悟2:空间相关与卷积的概念、区别及联系

    一.引言 在图像处理以及人工智能中,"卷积"一词是非常重要的概念,也是初学者难以理解的地方.在<数字图像处理:理解什么是卷积(滤波).卷积核以及相关参考资料>老猿结合相 ...

  3. 【图像处理】空间滤波、中值滤波(Spatial Filtering and Median Filtering)

    实验要求   编写一个能够完成两幅图像之间加.减.乘.除四种算术运算的函数.另外,对于两幅图像的乘法,所编写的乘法程序还要能够完成一幅图像乘以一个常数的功能.使用图Fig1.10(4)和Fig1.10 ...

  4. 【数字图像处理】空间滤波

    空间滤波 基础 平滑处理 平滑线性空间滤波器 盒状态滤波 高斯平滑滤波 统计排序滤波器 锐化处理 一阶微分算子 罗伯特 索贝尔 二阶微分算子 拉普拉斯算子 混合空间增强 学习笔记,防止自己忘记. sk ...

  5. 数字图像处理基础知识之二

    空域增强技术: 基础知识1: 定义二维函数f(x,y),其中x,y是空间坐标,f(x,y)是点(x,y)的幅值. 灰度图像是一个二维灰度(亮度)函数f(x,y):彩色图片是由三个二维灰度函数f(x,y ...

  6. 数字图像处理:理解什么是卷积(滤波)、卷积核以及相关参考资料

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 在图像处理领域,滤波.卷积都是相同的含义,都是一种图像的卷积操作,与此相对应通过卷积处理图像时,需要使用一个用于计算图像像素的参考矩阵,这个矩阵称为 ...

  7. 音视频技术开发周刊 69期

    『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第69期内容,祝您阅读愉快. 架构 BBR如何让S ...

  8. OpenCV-Python 图像平滑处理1:卷积函数filter2D详解及用于均值滤波的案例

    一.图像平滑处理简介 图像平滑处理属于图像空间滤波的一种,用于模糊处理和降低噪声.模糊处理经常用于图像预处理任务中,例如在(大)目标提取之前去除图像中的一些琐碎细节,以及桥接直线或曲线的缝隙.模糊处理 ...

  9. OpenCV-Python 图像平滑处理2:blur函数及滤波案例

    一.图像平滑处理简介 图像平滑处理的基本概念非常直观,它使用滤波器模板确定的邻域内像素的平均/加权平均灰度值代替图像中每个像素的值.平滑线处理滤波器也称均值滤波器,所有系数都相等(非加权平均)的空间均 ...

  10. 数字图像处理——第三章 空间域图像增强(空间滤波)

    文章目录 1. 空间滤波基础 2. 线性滤波器 2.1 平滑空间滤波器 2.2 锐化空间滤波器 2.2.1 基于一阶微分的图像增强--梯度法 2.2.2 基于二阶微分的图像增强--拉普拉斯算子 3. ...

最新文章

  1. RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比
  2. 综述|寻找自动驾驶中的关键场景
  3. Python 转义符
  4. 在RHEL5.0中用YUM解决RPM包的依赖关系
  5. dart和python混编,Flutter与iOS混编(一)
  6. 金九银十中,看看这31道Android面试题
  7. 扎克伯格做了26张PPT,员工效率提10倍,已被疯狂传阅!
  8. 步骤一:入门linux基础/01Linux简介和安装/003Linux系统的多面性
  9. 【2021牛客暑期多校训练营5】Jewels(建图,最小匹配权,KM乱搞)
  10. 记录一枚验证URL的js正则表达式
  11. mysql数据迁移性能_百万级MySQL的数据量,该如何快速的完成数据迁移?
  12. mac dmg包签名及公证
  13. 苹果App Store 四年历程回顾
  14. 使用HTML编写浣溪沙,浣溪沙_巅峰Hacker_新浪博客
  15. ensp搭建dhcp服务
  16. PostgreSQL中删除的数据能否恢复
  17. 【拜小白opencv】45-二维H-S直方图绘制----calcHist()函数、minMaxLoc()函数
  18. 在SpringMVC项目中使用HIkariCP
  19. 《Mysql是怎样运行的》读书笔记之B+树索引
  20. matlab jcitest,【期刊】JCI manuscript

热门文章

  1. [Win32] API Hook(2)在64位系统上的实现
  2. 新媒体运营面试必问5大问题(内附试题)
  3. java的注解跳过,java – 无法忽略lombok注释 – Sonarqube
  4. 影响个人职业前途的不良习惯
  5. 【编程题】【Scratch二级】2020.06 别碰红块
  6. ino查看工具android版,(组图)老牌 RSS 阅读器 Inoreader 安卓版 UI 改版了
  7. Spine动画加载优化思路 之 Spine动画加载问题
  8. 2018京东项目经理实习生面试经验
  9. 相对定位的新星——超宽带UWB的前世、今生和未来
  10. 糖果(SPFA、判负环)