Atitit 图像处理之理解卷积attilax总结

Atitit 图像处理之理解卷积attilax总结

卷积的运算可以分为反转、平移,相乘,求和。

在图像处理中,图像是一个大矩阵,卷积模板是一个小矩阵。按照上述过程,就是先把小矩阵反转,然后平移到某一位置,小矩阵的每一个小格对应大矩阵里面的一个小格,然后把对应小格里面的数相乘,把所有对应小格相乘的结果相加求和,得出的最后结果赋值给小矩阵中央小格对应的图像中小格的值,替换原来的值。就是上述说到的,反转、平移、相乘、求和。
        一般图像卷积就是从第一个像素(小格)开始遍历到最后一个像素(小格)。之后的平滑、模糊、锐化边缘提取等本质上都是卷积,只是模板不同。

以上只是一维的情况下,当对一幅二维数字图像加以卷积时,其数学意义可以解释如下:

源图像是作为输入源数据,处理以后要的图像是卷积输出结果,卷积操作数作为Filter

在XY两个方向上对源图像的每个像素点实施卷积操作。如图所示:

粉红色的方格每次在X/Y前进一个像素方格,就会产生一个新的输出像素,图中深蓝色的代

表要输出的像素方格,走完全部的像素方格,就得到了所有输出像素。

图中,粉红色的矩阵表示卷积操作数矩阵,黑色表示源图像– 每个方格代表一个像素点。

图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)

这里讨论利用输入图像中像素的小邻域来产生输出图像的方法,在信号处理中这种方法称为滤波(filtering)。其中,最常用的是线性滤波:输出像素是输入邻域像素的加权和

二:卷积在数字图像处理中应用

一副数字图像可以看作一个二维空间的离散函数可以表示为f(x, y), 假设有对于二维卷积操

作函数C(u, v) ,则会产生输出图像g(x, y) = f(x, y) *C(u,v), 利用卷积可以实现对图像模糊处理,边缘检测,产生轧花效果的图像。

一个简单的数字图像卷积处理流程可以如下:

1.      读取源图像像素

2.      应用卷积操作数矩阵产生目标图像

3.      对目标图像进行归一化处理

4.      处理边界像素

线性滤波与卷积的基本概念

线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。

二、神奇的卷积核

上面说到,对图像的滤波处理就是对图像应用一个小小的卷积核,那这个小小的卷积核到底有哪些魔法,能让一个图像从惨不忍睹变得秀色可餐。下面我们一起来领略下一些简单但不简单的卷积核的魔法。

图像锐化滤波器Sharpness Filter

图像的锐化和边缘检测很像,首先找到边缘,然后把边缘加到原来的图像上面,这样就强化了图像的边缘,使图像看起来更加锐利了。这两者操作统一起来就是锐化滤波器了,也就是在边缘检测滤波器的基础上,再在中心的位置加1,这样滤波后的图像就会和原始的图像具有同样的亮度了,但是会更加锐利。

我们把核加大,就可以得到更加精细的锐化效果

另外,下面的滤波器会更强调边缘:

主要是强调图像的细节。最简单的3x3的锐化滤波器如下:

实际上是计算当前点和周围点的差别,然后将这个差别加到原来的位置上。另外,中间点的权值要比所有的权值和大于1,意味着这个像素要保持原来的值。

边缘检测Edge Detection

我们要找水平的边缘:需要注意的是,这里矩阵的元素和是0,所以滤波后的图像会很暗,只有边缘的地方是有亮度的。

为什么这个滤波器可以寻找到水平边缘呢?因为用这个滤波器卷积相当于求导的离散版本:你将当前的像素值减去前一个像素值,这样你就可以得到这个函数在这两个位置的差别或者斜率。下面的滤波器可以找到垂直方向的边缘,这里像素上和下的像素值都使用:

再下面这个滤波器可以找到45度的边缘:取-2不为了什么,只是为了让矩阵的元素和为0而已。

那下面这个滤波器就可以检测所有方向的边缘:

为了检测边缘,我们需要在图像对应的方向计算梯度。用下面的卷积核来卷积图像,就可以了。但在实际中,这种简单的方法会把噪声也放大了。另外,需要注意的是,矩阵所有的值加起来要是0.

浮雕Embossing Filter

浮雕滤波器可以给图像一种3D阴影的效果。只要将中心一边的像素减去另一边的像素就可以了。这时候,像素值有可能是负数,我们将负数当成阴影,将正数当成光,然后我们对结果图像加上128的偏移。这时候,图像大部分就变成灰色了。

图像卷积与滤波的一些知识点 - zouxy09的专栏 - 博客频道 - CSDN.NET.html

卷积特征提取 - Ufldl.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:[email protected]

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

时间: 2024-08-04 18:22:56

Atitit 图像处理之理解卷积attilax总结的相关文章

转:图像处理之理解卷积

图像处理之理解卷积 一:什么是卷积 离散卷积的数学公式可以表示为如下形式: f(x) =  - 其中C(k)代表卷积操作数,g(i)代表样本数据, f(x)代表输出结果. 举例如下: 假设g(i)是一个一维的函数,而且代表的样本数为G = [1,2,3,4,5,6,7,8,9] 假设C(k)是一个一维的卷积操作数, 操作数为C=[-1,0,1] 则输出结果f(x)可以表示为 F=[1,2,2,2,2,2,2,2,1]  //边界数据未处理 以上只是一维的情况下,当对一幅二维数字图像加以卷积时,其

Atitit 图像处理类库大总结attilax qc20

1.1. 选择与组合不同的图像处理类库1 1.2. Halcon 貌似商业工具,功能强大.1 1.3. Openvc  Openvc功能也是比较多的,api接口1 1.4.  Jhlabs  Java Image Filters ..2 1.5. Javafx 的javafx.scene.effect类库,处理blend,blur,glow,light还是有一些的东东..2 1.6. Matlab (功能有: 频域变换(傅里叶变换,dct,kl,小波变换) 图像分割与边缘检测),提供cli接口2

Atitit 图像处理 深刻理解梯度原理计算.v1 qc8

1.1. 图像处理  梯度计算  基本梯度 内部梯度 外部梯度 方向梯度1 2. 图像梯度就是图像边缘吗?2 1.1. 图像处理  梯度计算  基本梯度 内部梯度 外部梯度 方向梯度  源代码基于OpenCV实现,原因是太懒了,不想再用Java从头写了! 一:概念介绍 形态学操作膨胀与腐蚀图像形态学中最基本的两个形态学操作.常常被组合起来一起使用实现一些复杂的图像形态学操作,计算图像的形态学梯度是形态学重要操作之一是有膨胀和腐蚀基础操作适当的组合形成.可以计算的梯度常见如下四种: 基本梯度 基本

Atitit 图像处理的摩西五经attilax总结

1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. OpenCV图像处理 2 4.1. 模式识别(英文版)(第4版) 西奥多里德斯著2 4.2. 图像处理,分析与机器视觉 第三版Sonka等著 艾海舟等译2 4.3. 计算机视觉:理论与算法 RichardSzeliski著2 1. 数字图像处理(第三版) 作者:(美)冈萨雷斯,(美)伍兹 著 Line 1: 第1章 绪论 Line 10: 第2章 数字图

Atitit 图像处理之编程之类库调用的接口api cli gui ws rest  attilax大总结.docx

Atitit 图像处理之编程之类库调用的接口api cli gui ws rest  attilax大总结.docx 1. 为什么需要接口调用??1 1.1. 为了方便集成复用模块类库1 1.2. 嫁接不同的语言与类库,以及嵌入dsl1 1.3. 方便跨机器,跨开发板,跨硬件,跨运行环境的代码复用2 2. 接口api的历史2 2.1. 发展历程2 2.2. API 这个类库默认提供的接口,要求同语言调用一般2 2.3. Cli接口 命令行接口.单机跨语言接口(推荐比较常用)3 2.4. 图形用户

Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结

Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结 1.1. 安装halcon11 ..体积大概1g压缩模式1 1.2. Halcon的科技树1 1.3. 启动 "D:\Program Files\MVTec\HALCON-11.0\bin\x86sse2-win32\hdevelop.exe"2 1.4. 编写hdev脚本 用的halcon自己的脚本语言2 1.5. 查找边缘算法3 1.6. 查函数列表与资料3 1.7. 对多语言的支持,以及接口,以及

Atitit 图像处理 调用opencv 通过java  api   attilax总结

Atitit 图像处理 调用opencv 通过java  api   attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1.2. 安装2016-05-19  opencv v2.4.13   267M  ,一个压缩包解压即可1 1.3. Opencv d java 接口api  ,把opencv-2413.jar加入java项目1 1.4. /AtiPlatf_ee/src/com/attilax/img/SfitTes

Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结

Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结 1.1. 五中滤镜的分别效果..1 1.2. 基于肤色的图片分类1 1.3. 性能提升2 1.4. --code2 1.1. 五中滤镜的分别效果.. /AtiPlatf_cms/src/com/attilax/clr/skinfltAll.java 1.2. 基于肤色的图片分类 /AtiPlatf_cms/src/com/attilax/clr/moveBySkinLow.java 生成所有图片的肤色百分

Atitit 图像处理—图像形态学(膨胀与腐蚀)

Atitit 图像处理-图像形态学(膨胀与腐蚀) 1.1. 膨胀与腐蚀1 1.2. 图像处理之二值膨胀及应用2 1.3. 测试原理,可以给一个5*5pic,测试膨胀算法5 1.4. Photoshop里面的处理5 1.5. 类库的处理,好像没找到jhlabs,6 1.6. Attilax 源码6 1.1. 膨胀与腐蚀 说概念可能很难解释,我们来看图,首先是原图: 膨胀以后会变成这样: 腐蚀以后则会变成这样: 看起来可能有些莫名其妙,明明是膨胀,为什么字反而变细了,而明明是腐蚀,为什么字反而变粗了