数字图像卷积原理,matlab的conv2函数,不使用con2函数实现卷积

图像卷积原理

卷积,Convolution。卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果为:

本文只讨论卷积在数字图像中的应用。
数字图像是二维离散信号,对图像进行卷积操作就是卷积模板在图像上滑动,如下图所示。

滑动的过程中,图像像素值和模板像素值对应位置相乘再相加得到的结果就是中心元素对应的卷积结果。比如在上图中,图像中原像素值为6(第二行第二列)卷积后得结果得到-3。

MATLAB函数conv2

首先可以通过lookfor convolution查看matlab所提供的卷积操作。

可以看到二维卷积函数是conv2,然后通过help conv2打开帮助文档,查看具体的conv2函数。

举例:

%% 图像卷积
clc,clear
I = imread('lenna1.jpg');
[M,N] = size(I);%获取原始图像大小
I = double(I);
%% conv2函数实现卷积
M1 = 1/9 * [1 1 1;1 1 1;1 1 1];% 3×3 邻域平均线性平滑滤波
I1 = conv2(I,M1,'same');
I2 = conv2(I,M1);
figure(1);
subplot(1,3,1);imshow(uint8(I));title('原图像');
subplot(1,3,2);imshow(uint8(I1));title('conv2函数实现卷积,与I大小相同的卷积');
subplot(1,3,3);imshow(uint8(I2));title('conv2函数实现卷积,完整卷积');


I为原图像,I1为卷积大小与I相同的卷积区域,I2为完全卷积区域。

通过查看具体I、I1、I2的数值,可以发现conv2在卷积时对于图像边缘的处理是补0处理。

MATLAB实现图像卷积

这里卷积模板使用了线性平滑滤波中最简单的邻域平均卷积模板,对于边缘的进行了忽略处理(即只选择了对应模板元素都在图像矩阵中的像素进行卷积)。

%% 图像卷积
clc,clear
I = imread('lenna1.jpg');
[M,N] = size(I);%获取原始图像大小
I = double(I);
%% conv2函数实现卷积
M1 = 1/9 * [1 1 1;1 1 1;1 1 1];% 3×3 邻域平均线性平滑滤波
I1 = conv2(I,M1,'same');
I2 = conv2(I,M1);
figure(1);
subplot(1,3,1);imshow(uint8(I));title('原图像');
subplot(1,3,2);imshow(uint8(I1));title('conv2函数实现卷积,与I大小相同的卷积');
subplot(1,3,3);imshow(uint8(I2));title('conv2函数实现卷积,完整卷积');
%% 不使用conv2函数进行卷积
M2 = 1/9 * [1 1 1;1 1 1;1 1 1];% 3×3 邻域平均线性平滑滤波
n = size(M2,1);
t = floor(n/2);
I3 = zeros(M,N);
%边缘没有进行卷积
for i = 1+t:M-tfor j = 1+t:N-tI3(i,j) = sum(sum(M1 .* I(i-t:i+t,j-t:j+t)));end
end
figure(2);
subplot(1,3,1);imshow(uint8(I));title('原图像');
subplot(1,3,2);imshow(uint8(I1));title('conv2函数实现卷积,与I大小相同的卷积');
subplot(1,3,3);imshow(uint8(I3));title('不使用conv2函数进行卷积');


可看到I3的边缘都是0。

图像卷积原理及MATLAB实现相关推荐

  1. 基于双线性插值的图像旋转原理及MATLAB实现(非自带函数)

    目录 1.图像旋转的原理 1.1.旋转矩阵 1.2.双线性插值 1.3.像素点匹配 2.实现效果与说明 1.图像旋转的原理 1.1.旋转矩阵 旋转一幅图像(假设这幅图像大小是矩形的),当然应该从像素点 ...

  2. 图像卷积原理及运算方法

    原理 卷积,有时也叫算子.用一个模板去和另一个图片对比,进行卷积运算.目的是使目标与目标之间的差距变得更大.卷积在数字图像处理中最常见的应用为锐化和边缘提取. 如边缘提取,假如目标像素点和它周边的值( ...

  3. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  4. 深度学习:图像的卷积原理和本质(详解)。

    首先,介绍图像卷积的计算过程. 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.5×55×5等,数字图像是相对较大尺寸的2维(多维)矩阵(张量),图像卷积运算与相关运算的关系如 ...

  5. matlab灰度图转rgb原理,RGB图像转化为灰度图原理以及MATLAB实现

    RGB图像转化为灰度图原理以及MATLAB实现 1 原理 在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像.利用MATLAB对图像进行读取,可以知道存储RGB图像数据为256*25 ...

  6. python图像卷积_图像处理——卷积原理、二维卷积python实现

    一:什么是卷积 离散卷积的数学公式可以表示为如下形式: f(x) =  - 其中C(k)代表卷积操作数,g(i)代表样本数据, f(x)代表输出结果. 举例如下: 假设g(i)是一个一维的函数,而且代 ...

  7. 基于MATLAB的图像卷积运算

    卷积简介 卷积广泛应用于信号.图像和机器学习等领域,但是对于非数学专业的同学来说,是一个比较陌生和懵懂的概念.卷积(Convolution)是数学上的一种积分变换,主要作用是为了获取某个函数的局部信息 ...

  8. 盲去卷积原理及在图像复原的应用

    前言 之前写过一篇维纳滤波在图像复原中的作用,讲述了图像退化模型以及维纳滤波的作用.维纳滤波使用的前提是知道信号和噪声的功率谱,但在实际应用中较难得到,只能根据先验知识进行估计. 本文介绍盲去卷积复原 ...

  9. 量子遗传算法原理与MATLAB仿真程序

    写在前面: 1.其实这些智能算法的思想都差不多,只不过是各自搜寻方式.编码方式.种群更新方式等不一样而已. 量子遗传算法是在遗传算法的基础上使用了一种新的编码方式. 2.直接看前面介绍可能会觉得较难, ...

最新文章

  1. 慕课网Flask高级编程实战-10.鱼书业务处理
  2. 8.QT的事件循环与事件发送相关类
  3. C++中的Lock简单用法
  4. centos mysql-5.5.20_centos 下安装mysql5.5.20出现的问题
  5. 深度学习总结:GAN,原理,算法描述,pytoch实现
  6. tcp/ip ---IP路由选择
  7. Java设计模式应用——工厂模式
  8. 睡眠监测微信小程序源码
  9. python turtle库seth_python学习篇,turtle库
  10. 5G 商用第三年:无人驾驶的“上山”与“下海”
  11. Win10网卡驱动突然消失
  12. 常用的VBA代码参考
  13. 鸿蒙系统服务器在哪,鸿蒙的服务中心怎么打开?鸿蒙服务中心打开及关闭教程...
  14. 计算机网络蜂窝状拓扑结构,基于星型结构的计算机网络拓扑结构研究
  15. Kotlin学习资料
  16. ROS中Plugin插件学习
  17. 浙江大学数据结构第一讲:1.1什么是数据结构
  18. 计算机合并单元格怎么操作,excel怎么合并单元格,教您excel合并单元格的方法
  19. 战舰帝国服务器维护,【图片】9月17日更新公告亲爱的司令官:《战舰帝国》于9月17日维护,成功更新后可以获得200个钻石的更新补偿_战舰帝国吧_百度贴吧...
  20. 一个计算机爱好者的不完整回忆(十)插播游戏

热门文章

  1. 粒子群(PSO)、量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题
  2. 【PCB干货】是开窗还是盖油?想搞懂过孔工艺,看这篇就够了!
  3. 有关Web常用字体的研究?
  4. phthon easygui的下载、安装
  5. 基于Python旅游景区景点售票系统设计与实现 开题报告
  6. R语言学习:卡方检验
  7. spine 导出纹理_Spine( 动画制作软件 )中文版分享
  8. 19年9月下旬宝马BMW诊断维修指南瑞金Rheingold(ISTA-D)4.19.21 安装版
  9. Linux系统编程 —共享内存之mmap
  10. 【火龙果】评测二 从开发板电路设计入手