背景

二维卷积
在二维卷积中,我们通过卷积核对输入图像进行卷积来计算输出图像。卷积核是一个小尺寸的矩阵,例如3×3、5×5或5×7像素;这个矩阵中的项称为卷积系数。
在二维相关中,我们通过将输入图像与相关掩码相关联来计算输出图像。相关掩码是一个小矩阵,其条目称为相关系数。
如下例所示,二维卷积和二维相关非常密切。具有卷积核h的图像的二维卷积与具有相关掩模m的图像的二维相关是相同的,

m通过将h旋转180°来获得,考虑输入图像f和卷积核h,如下所示:

我们将计算由f和h的二维卷积产生的输出图像g。在本实验室中,假设输出图像被裁剪成与输入图像相同的大小。

要计算目标像素位置的卷积输出,例如行y=2,列x=3,请执行以下步骤。
第一步:将卷积核h旋转180度,得到m。


这里,m是对应于给定卷积核的相关掩码。
第二步:在输入图像上滑动m,使其中心与目标位置重合(y行=2,列x=3)。


第三步:将m和它下面的输入像素相乘,用同样的方法求和所有的乘积

我们可以计算出整个输出图像

如果我们对f和相关掩码m进行二维相关,则得到相同的输出图像。对于相关,只需要步骤2和步骤3

MATLAB中的二维卷积

a)MATLAB函数imfilter可用于执行二维卷积和二维相关。
要计算图像f和卷积核h的二维卷积,请使用g=imfilter(f,h,'conv')

计算图像f和相关掩码m的二维相关性,使用  g=imfilter(f,m,'corr')

注意第三个参数中的差异。
在MATLAB中,利用rot90函数,从卷积核中得到相关掩模m:m=rot90(h,2);

b) 对于方程(5.1)中给出的输入矩阵f和卷积核h,为以下任务输入适当的MATLAB命令。
计算f和h之间的二维卷积的输出。
计算相关掩模m。
计算f与m之间二维相关性的输出。
比较二维卷积和二维相关性。

5.4线性图像滤波的应用

在本节中,我们将研究线性图像滤波的几种应用。这些应用包括平滑图像、锐化图像和检测图像中的边缘。

图像平滑

a)平滑滤波器(也称为低通滤波器)用于去除图像中的噪声。平滑滤波器的卷积核通常满足两个条件:(i)所有系数为正;(ii)所有系数之和等于1。
平滑滤波器在去除由随机噪声引起的突变图像时非常有用。但是,它们也会模糊图像,并且模糊在包含边缘的区域中最明显。

两种常见的平滑滤波器是平均滤波器和高斯低通滤波器。
平均滤波器:卷积核的所有系数都相同:M是卷积核的大小。
高斯低通滤波器:该滤波器基于高斯函数,其定义为,

,其中ux,u为中心,σ为标准差。
为了确保所有系数和为1: 

这些滤波器的卷积核可以用MATLAB函数fspecial生成。例如,

h=fspecial('average',5)%平均滤波器,大小为5×5,

h=fspecial('gaussian',5,0.5)%高斯滤波器,大小为5×5,σ=0.5

b) 考虑图像Lena gaussian-noise.bmp包含高斯噪声。我们的目标是通过线性滤波去除图像中的噪声。
计算平均滤波器产生的输出图像。对不同尺寸(5×5和7×7)的过滤器进行试验,并对结果进行比较。
计算尺寸为5×5的高斯滤波器产生的输出图像。用不同的标准差值(σ=0.5和σ=1)进行试验。描述参数σ对滤波器输出的影响。

图像锐化

a)在摄影和出版行业中,一种用于锐化图像的标准技术被称为“反锐化掩模”。之所以有这个名字,是因为这种技术找到了使其“取消锐化”的图像组件,然后从原始图像中删除(或“屏蔽”)该组件。
图像的“未锐化”部分通过低通滤波得到,然后从原始图像中减去,得到边缘图像。最后将边缘图像加入到原始图像中,使边缘更加清晰。所有这些步骤都可以通过具有以下卷积核的单个滤波器来完成

在MATLAB中,可以使用函数fspecial创建一个反锐化掩蔽滤波器:h_unsharp=fspecial('unsharp',0.2)上述命令创建一个带系数0.2的反锐化滤波器。

应用反锐化掩模滤波器锐化图像Lena-blur.bmp. 对的一系列值进行试验,以找到最合适的值。

边缘检测

a)有几种线性滤波器可用于检测图像中的边缘(见ECTE903-tearch-02.pdf)。在这个实验中,我们将实验两种滤波器:Prewitt算子和Sobel算子。“Operator”只是卷积内核或过滤器的另一个名称。
Prewitt算子:有八种不同的Prewitt算子;每个算子都被设计成检测具有特定方向的边缘。例如,运算符P1检测水平边缘;运算符P8检测垂直边缘;运算符P2检测对角线边缘:

Sobel算子:有八种不同的Sobel算子;每个算子都被设计成沿着特定方向检测边缘。例如,运算符S1检测水平边缘;运算符S8检测垂直边缘;而运算符S2检测对角线边缘:

b) 执行MATLAB命令open(sldemo_msfcn_edge_detect.slx'以查看边缘检测的演示。单击“开始模拟”按钮。
c) 清单5.1中的MATLAB程序detect_edge.m实现了通过线性滤波找到图像边缘的步骤。此程序在图像上应用两个Prewitt运算符P1和P3shape.bmp.

% Written: Lam Phung, July 2006
f = rgb2gray(imread('shapes.bmp')); % Read input image
figure(1), subplot(2,2,1),imshow(f); title('Input image');
f = double(f);%% Linear image filtering
hx = [1  1  1; 0  0  0; -1 -1 -1] % Prewitt horizontal operator
hy = [1  0 -1; 1  0 -1;  1  0 -1] % Prewitt vertical operator
edge_x = imfilter(f,hx,'conv');   % Edge strength along x direction
edge_y = imfilter(f,hy,'conv');   % Edge strength along y direction%% Show edge detection based on individual operator
% Consider a pixel as an edge pixel if edge strength exceeds a threshold
edge_threshold = 1;
subplot(2,2,3); imshow(abs(edge_x) > edge_threshold); title('Horizontal operator');
subplot(2,2,4); imshow(abs(edge_y) > edge_threshold); title('Vertical operator');%% Combining both horizontal and vertical filter outputs
edge_magnitude = sqrt(edge_x .^ 2 + edge_y .^ 2); % Combined edge strength
edge_threshold = 1;
edge_map = (edge_magnitude >= edge_threshold);
subplot(2,2,2), imshow(edge_map), title('Edges based on both operators');%% Show edge directions
[H, W] = size(f); [x,y] = meshgrid(1:W,1:H);
figure(2), quiver(x, y, edge_x, edge_y);
axis image; axis ij;

非线性图像滤波使用顺序统计

a)中值滤波器的非线性滤波器。对于线性滤波器,输出像素是相邻像素的线性组合。相反,对于中值滤波器,输出像素是相邻像素的中值。对于两个过滤器,邻域由过滤器大小决定,例如3×3或5×5像素。
考虑图1中的示例。假设对图像f应用大小为3×3的中值滤波器。第2行和第3列的输出像素为:

b) MATLAB有一个内置函数medfilt2用于图像中值滤波。它的语法是g=medfilt2(f,[mn]),其中f是输入图像,g是输出图像,过滤器大小是m行×n列。
c) 图为Lena-salt-pepper-noise.bmp在这个实验室里被盐和胡椒的噪音污染了。应用中值滤波器从该图像中去除噪声。比较不同滤波器尺寸产生的输出。
d) 使用适当的高斯低通滤波器去除图像中的噪声-噪声.bmp. 比较高斯滤波器和中值滤波器产生的输出。
e) 清单5.2显示了一个MATLAB程序,该程序使用5×5像素的过滤器大小生成中值滤波图像。此程序使用函数中值来计算列向量的中值。
要使用median_filter.m程序,请尝试f=imread('Lena-salt-pepper-noise.bmp');median_filter(f);

function g = median_filter(f)
[height, width]= size(f); % Size of input image
g = zeros(height, width); % Allocate memory for output imagefor y = 1:heightfor x = 1:widthx1 = x - 2; % left  column of the 5x5 windowx2 = x + 2; % right column of the 5x5 windowy1 = y - 2; % top row      of the 5x5 windowy2 = y + 2; % bottom row   of the 5x5 window% When the neighbourhood exceeds the image boundaryx1 = max(x1, 1);x2 = min(x2, width);y1 = max(y1, 1);y2 = min(y2, height);window = f(y1:y2, x1:x2); % 5 x 5 windowwindow = window(:);       % rearrange window into a column vectorg(y, x) = median(window); % output pixel = median of window end
end
g = uint8(g); imshow(g); % convert to 8-bit image and display

E1。licence-plate.bmp是一个用于车牌自动识别的示例图像。然而,图像质量较低。应用本实验室所学的适当的图像增强技术来增强图像。在答案中包括MATLAB程序和输出图像

E2。实现中心加权中值滤波器中心加权中值(CWM)滤波器在ECTE903-TEARCH-02.pdf中描述。基于清单5.2,编写一个计算CWM过滤图像的MATLAB函数。函数应该有如下语法 function g = cw_median_filter(f, M)

代码见:404 (csdn.net)

Image Processing in the Spatial Domain 空间域图像处理相关推荐

  1. 3.空间域图像处理入门

    目录 一 基本概念 二 空间域滤波的计算过程 三 常见的灰度变换 1.图像翻转 2.对数变换 3.Gamma变换 4.直方图均衡化 一 基本概念 问:什么空间域? 答:"空间域"指 ...

  2. 图像处理-空间域平滑滤波

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-12.html 目录: 1.       空间域和频域的概念 2 ...

  3. 【youcans 的 OpenCV 学习课】7. 空间域图像滤波

    专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 [youcans 的 OpenCV 学习课]7. 空间域图像滤波 图像滤波是在尽可能保留图像 ...

  4. 转载 基于bayer型阵列的空间域插值

    基于bayer型阵列的空间域插值算法分 蒲杰 女,重庆邮电大学,在读硕士,研究方向为移动通信. 李振中 重庆邮电大学通信与信息工程学院. 屈刚 江苏省邮电规划设计院有限责任公司. 1 引言 在数码照相 ...

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

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

  6. 数字图像处理——第三章 空间域图像增强(灰度变换和直方图处理)

    文章目录 空间域图像增强 1. 背景知识 2. 基本灰度变换 2.1 图像反转 2.2 对数变换 2.3 幂次变换 2.4 分段线性变换函数 2.4.1 对比拉伸 2.4.2 灰度切割 2.4.3 位 ...

  7. Matlab | 空间域水印技术:LSB(Least Significant Bit):计算峰值信噪比PSNR(matlab源代码)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  8. 【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤

    图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法.图卷积中的"图"是指数学(图论)中用顶点和边建立的有相关联系的拓扑图 ...

  9. 【OpenCV 例程200篇】67. 空间域图像增强的综合应用

    [OpenCV 例程200篇]67. 空间域图像增强的综合应用 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5. ...

  10. 图像处理-空间域锐化滤波

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-14.html 目录: 1.前言  2.锐化滤波  3.Robe ...

最新文章

  1. Chrome Extension 检查视图(无效)处理方法
  2. 自动根据动态的intput计算值
  3. 局域网无法访问本地apache
  4. Concurrent包工具类使用
  5. Origin绘图之条形图上加曲线拟合图
  6. 技术解读丨分布式缓存数据库Redis大KEY问题定位及优化建议
  7. 计算机原理期末考试,计算机原理期末考试题
  8. 西瓜书学习笔记2-多元线性回归公式推导
  9. 量子计算机能超越光速,目前有存在超光速吗?人类是否可以超越光速?
  10. WICC | 为什么说中国「泛娱乐」出海绕不开这家公司
  11. 4412——Linux驱动入门01
  12. python画图旋转图形_python简单实现旋转图片的方法
  13. 适合年轻人的副业项目,想要赚钱养家就不要再懒了
  14. php错误测试,对 PHP 错误进行测试
  15. linux裸设备文件系统,关于裸设备,文件系统,CIO/DIO
  16. Win32的时间类型
  17. 将逻辑分区的空间分给主分区C盘,使用diskgenius,提示需要在dos进行
  18. 「wps教程」Word里的大神器隐藏技能
  19. Python中数组和向量相互转化
  20. 5月英语——热情还是坚持?

热门文章

  1. php bouncy castle,ORG.BOUNCYCASTLE
  2. 构建分布式系统——技术考量
  3. Pandoc安装与使用总结
  4. 《科技创业启示录》一第1章 乔斯·怀特
  5. yaffs2源码学习2:chunk和block
  6. Opencv 学习笔记(二)
  7. VMware View中智能卡和证书身份验证
  8. openstack虚拟机热迁移优化如何治本?
  9. 近期DDG挖矿病毒防护与分析
  10. 【JS提升】六边形的两种画法