`
k_lb
  • 浏览: 801521 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

简单的图像滤镜运算法则

 
阅读更多

简单的图像滤镜运算法则


位图文件主要存储的是一个一个的像素,它是一个长乘宽的二维数组,每一个数组元素都是一个RGB

struct,里面有3个Byte(字节),分别存储着RGB(即红绿蓝)三原色的值,从0到255,数字越大颜色越

亮,(0,0,0)代表黑色,(255,255,255)代表白色。

我们假设有一个非常小的位图图像(height=2,width=4),那么它在内存中最重要的部分(也就是像素

存储部分)可以表示为:
(0,0,0) (0,0,0)(0,0,0)
(0,0,0) (0,0,0)(0,0,0)
(0,0,0) (0,0,0)(0,0,0)
如果它存储在数组pixel[2][4]中,改变为灰色的位图很简单只需把它的值改为:
(127,127,127)(127,127,127)(127,127,127)
(127,127,127)(127,127,127)(127,127,127)
(127,127,127)(127,127,127)(127,127,127)

下面说说滤镜(filter)和卷积(convolution),举个例子说明:
有一个4*4的图像存储在G[i][j](i,j=0~3)中:
2 2 2 2
3 2 3 3
4 6 4 5
5 6 6 6
有一个3*3的滤镜F[i][j](i,j=0~2);
1 2 1
1 1 1
1 1 1
二者如何卷积(convolution)运算呢?假设产生的新图为N[i][j],N*F的卷积为:
N[i][j]=G[i-1][j-1]*F[i-1][j-1]+G[i][j-1]*F[i][j-1]+G[i+1][j-1]*F[i+1][j-1]+G[i-1][j]*F[i-

1][j]+G[i][j]*F[i][j]+G[i+1][j]*F[i+1][j]+G[i+1][j-1]*F[i+1][j-1]+G[i][j+1]*F[i][j+1]+G

[i+1][j+1]*F[i+1][j+1]

例如,要计算N[1][1]等于多少?说的具体点就是将这个滤镜套在旧图G上,将滤镜的中心F[1][1]与G[1]

[1]对齐,然后将重合的地方相乘,再将它们加起来,结果是:
N[1][1]为:
2 2 2 2
3 3.2 3 3
4 4.3 4.5 5
5 6 6 6
新图的N[1][1]点的值是原来旧图G[1][1]点的四周8个点,和本身加起来求和,又除以9的结果,实际上是

实现了邻域平均,图像编的模糊和柔化了。这里的F[i][j]就是邻域平均的一种滤镜。

分享到:
评论

相关推荐

    《Visual C++数字图像处理开发入门与编程实践》源码

    11.1.3 图像简单平滑的算法实现 427 11.2 图像的高斯平滑 431 11.2.1 平滑线性滤波器 432 11.2.2 高斯平滑的原理 432 11.2.3 高斯平滑的算法实现 433 11.3 图像的中值滤波 436 11.3.1 统计排序滤波器 437 11.3.2 ...

    java图形图象处理系统设计与实现源码

    该软件支持图片展示、编辑、图像特效、滤镜、图形绘制等多个功能,能够对数字化图片进行从图像处理到图像绘制等全方位的图像处理操作。该系统可用于多种领域,包括美术设计、游戏开发、图像处理、计算机视觉和教育等...

    广东省photoshop二级考试_选择题.doc

    掌握使用选框工具、套索工具和魔棒工具建立选区的方法,运用选区的多种运算法则对选区进行修改和编辑,通过键盘快捷键的配合移动或复制选区内的像素。 (三)图层蒙版 【考试要求】 熟练掌握图层蒙版的建立,并使用...

    真实辉光特效AE插件AEscriptsRealGlowv1.0Mac中文英文特别版教程

    它的出现有别于AE内置的glow滤镜和传统创作理念,AE内置的glow滤镜和其他类型的辉光工具进行的是简单的线性模糊计算,而Real Glow的辉光产生自一个发光的光环,进行的是有规则的正确的光学衰减计算,更加贴近真实...

    Flash ActionScript 3.0高级动画教程

    A_star运算法则 代价计算 图解运算过程 代码实现 常见的Astar估价公式 使用Astar类 修改路径细节:拐角 在游戏中使用Astar 进阶教程 总结 第五章 二级 输入设备:摄像头和麦克风 摄像头和麦克风 输入的声音 声控游戏...

    ActionScript开发技术大全

    3.6.1ActionScript3.0的运算规则 42 3.6.2初始化操作符 43 3.6.3数学操作符 43 3.6.4位运算符 45 3.6.5赋值操作符 47 3.6.6关系操作符 47 3.6.7逻辑操作符 48 3.6.8条件操作符 49 3.6.9E4X操作符 49 3.7条件语句 50 ...

    javaSE代码实例

    3.8.2 运算赋值运算 38 3.9 括号及运算符间的优先级关系 38 3.10 常用数学工具包——java.lang.Math类 39 3.10.1 数学常量 39 3.10.2 常用数学函数 40 3.11 小结 41 第4章 流程控制——Java世界的航行...

    matlab中拟合中心线的代码-Iris-Segmentation-GST-Matlab:基于广义结构张量(GST)的虹膜分割代码

    根据参考文献2中发布的方法计算图像频率。这有助于将步骤5-8的内部参数自定义为输入图像。 如参考文献2所示,使用图像频率进行自适应睫毛去除。该方法基于参考文献4中公开的p秩滤镜。去除了睫毛,因为它们会形成很强...

    Web系统与技术 课程教材

    7.3.4 算术运算和关系运算... 218 7.4 PHP主要语句... 219 7.4.1 赋值语句... 219 7.4.2 输入输出语句... 220 7.4.3 选择语句... 221 7.4.4 循环语句... 222 7.5 数组... 225 7.5.1 数组创建... 225 7.5.2 ...

    易语言模块大全(共775个模块)

    BMP滤镜(1.0).zip bmp转换为jpg(1.0).zip BoyChong-神2 多方式取IP模块(1.0).zip BoyChong专用常用模块(1.2).zip 保存图片(1.0).zip 变速模块(1.0).zip 保存扩展界面设置1.0(1.0).zip 保证显示(1.0).zip 冰川的...

    易语言700模块打包

    BMP滤镜(1.0).zip bmp转换为jpg(1.0).zip BoyChong-神2 多方式取IP模块(1.0).zip BoyChong专用常用模块(1.2).zip 保存图片(1.0).zip 变速模块(1.0).zip 保存扩展界面设置1.0(1.0).zip 保证显示(1.0).zip ...

Global site tag (gtag.js) - Google Analytics