当前位置: 首页 > news >正文

图像处理学习笔记-03-灰度变换与空间滤波-模糊技术

混合空间增强法

将多种图像增强方法结合起来,完成困难的图像增强任务
混合空间增强法的例子

使用模糊技术进行灰度变换和空间滤波

目的:例如将人分为年轻人和非年轻人,使用一个确定的阈值例如20岁,那么20岁过1秒的人也属于非年轻人,我们需要更加弹性的在年轻和非年轻之间过渡

模糊集合论原理

Z Z Z是一个元素集, z z z表示 Z Z Z的一类元素,即 Z = { z } Z = \{z\} Z={z},该集合称为论域,模糊集合 A A A由隶属度函数 μ A ( z ) \mu_A(z) μA(z)来表征:
A = { z , μ A ( z ) ∣ z ∈ Z } A = \{z,\mu_A(z)|z \in Z\} A={z,μA(z)zZ}
当隶属度函数值为1表示该元素是集合的完全成员,隶属度函数值位于0和1之间表示在集合中的隶属度等级为隶属度函数值,隶属度函数值为0表示该元素不属于该集合

  • 空集: Z Z Z中的隶属度函数值为0,模糊集合为空集;
  • 相等:当且仅当对于所有的 z ∈ Z , μ A ( z ) = μ B ( z ) z \in Z,\mu_A(z) = \mu_B(z) zZ,μA(z)=μB(z),则称两个模糊集合 A A A B B B相等;
  • 补集:由 A ‾ \overline{A} A N O T ( A ) NOT(A) NOT(A)表示模糊集合 A A A的补集,定义其隶属度函数为:
    μ A ‾ ( z ) = 1 − μ A ( z ) \mu_{\overline{A}}(z) = 1 - \mu_A(z) μA(z)=1μA(z)
  • 子集:当且仅当对于所有的 z ∈ Z z \in Z zZ有:
    μ A ( z ) ≤ μ B ( z ) \mu_A(z) \leq \mu_B(z) μA(z)μB(z)
    此时,模糊集合 A A A是模糊集合 B B B的子集;
  • 并集:
  • 对于所有的 z ∈ Z z \in Z zZ,具有隶属度函数:
    μ U ( z ) = m a x [ μ A ( z ) , μ B ( z ) ] \mu_U(z) = max[\mu_A(z),\mu_B(z)] μU(z)=max[μA(z),μB(z)]
    的并集 U U U表示为 A ⋃ B A \bigcup B AB A   O R   B A\ OR\ B A OR B
  • 对于所有的 z ∈ Z z \in Z zZ,具有隶属度函数:
    μ I ( z ) = m i n [ μ A ( z ) , μ B ( z ) ] \mu_I(z) = min[\mu_A(z),\mu_B(z)] μI(z)=min[μA(z),μB(z)]
    的交集 I I I表示为 A ⋂ B A \bigcap B AB A   A N D   B A\ AND\ B A AND B

模糊集合应用

假设生的水果是绿色的,半熟的水果是黄色的,成熟的水果是红色的,对应规则集:

  • R 1 R_1 R1:IF颜色是绿色,THEN水果是生的
  • R 2 R_2 R2:IF颜色是黄色,THEN水果是半熟的
  • R 3 R_3 R3:IF颜色是红色,THEN水果是熟的

颜色采用波长这一值来表示,下图表示不同的波长对应不同颜色的隶属度,也就是输入的隶属度函数:
不同波长对不同颜色的隶属度
输出本身也是模糊的:
成熟度对不同成熟度的隶属度函数
以红色 A N D AND AND成熟规则 R 3 R_3 R3为例,这是一个二维的隶属度函数,表示为一个笛卡尔积 ( z , v ) (z,v) (z,v) [ 0 , 1 ] [0,1] [0,1]的映射:
μ 3 ( z , v ) = m i n { μ r e d ( z ) , μ m a t ( v ) } \mu_3(z,v) = min\{\mu_{red}(z),\mu_{mat}(v)\} μ3(z,v)=min{μred(z),μmat(v)}
上式是一个通用解,此时一个特定的输入 z 0 z_0 z0,此时用 Q 3 ( v ) Q_3(v) Q3(v)表示, c = μ r e d ( z 0 ) c = \mu_{red}(z_0) c=μred(z0),唯一的变量为 v v v
Q 3 ( v ) = m i n { μ r e d ( z 0 ) , μ m a t ( z 0 , v ) } Q_3(v) = min\{\mu_{red}(z_0),\mu_{mat}(z_0,v)\} Q3(v)=min{μred(z0),μmat(z0,v)}
给定输入z之后得到的隶属度函数
同理,我们可以得到另外两个规则和输入 z 0 z_0 z0导致的模糊响应:
Q 1 ( v ) = m i n { μ g r e e n ( z 0 ) , μ 1 ( z 0 , v ) } Q 2 ( v ) = m i n { μ y e l l o w ( z 0 ) , μ 2 ( z 0 , v ) } Q_1(v) = min\{\mu_{green}(z_0),\mu_{1}(z_0,v)\} \\ Q_2(v) = min\{\mu_{yellow}(z_0),\mu_{2}(z_0,v)\} Q1(v)=min{μgreen(z0),μ1(z0,v)}Q2(v)=min{μyellow(z0),μ2(z0,v)}
由于三个规则之间是通过 O R OR OR操作连接起来的:
Q = Q 1   O R   Q 2   O R   Q 3 Q = Q_1 \ OR \ Q_2 \ OR \ Q_3 Q=Q1 OR Q2 OR Q3
所以我们可以得到结果如下: r = { 1 , 2 , 3 } , s = { 绿色 , 黄色 , 红色 } r = \{1,2,3\},s = \{绿色,黄色,红色\} r={1,2,3},s={绿色,黄色,红色},见下图
Q ( v ) = m a x r { m i n s { μ s ( z 0 ) , μ r ( z 0 , v ) } } Q(v) = \mathop{max}\limits_{r} \left\{ \mathop{min}\limits_{s} \left\{ \mu_s(z_0),\mu_r(z_0,v)\right\}\right\} Q(v)=rmax{smin{μs(z0),μr(z0,v)}}
在z0条件下的隶属度函数
之后进行去模糊操作求出一个干脆的输出 v 0 v_0 v0,计算集合的重心,假设 Q ( v ) Q(v) Q(v) K K K种取值:
v 0 = ∑ v = 1 K v Q ( v ) ∑ v = 1 K Q ( v ) v_0 = \frac{\sum_{v = 1}^KvQ(v)}{\sum_{v = 1}^KQ(v)} v0=v=1KQ(v)v=1KvQ(v)
得到 v 0 = 72.3 v_0 = 72.3 v0=72.3,指出给定的颜色 z 0 z_0 z0成熟度约为 72 % 72\% 72%

总结

  • 模糊输入:对于每个标量输入,例如颜色,使用隶属度函数找到相应的模糊值;
  • 合并各个部分的输出,利用模糊集合操作交和并,例如前提为绿色或坚硬,合并时用 O R OR OR
  • 每一个规则,例如红色 A N D AND AND成熟,前提和输出之间使用 A N D AND AND连接;
  • 将不同的规则聚合起来,使用 O R OR OR操作;
  • 将最后输出的模糊集合去模糊操作,得到一个干脆的标量输出,例如计算重心;

使用模糊集合进行灰度变换

考虑如下的一个例子:

  • IF一个像素是暗的,THEN使它较暗;
  • IF一个像素是灰的,THEN使它仍是灰的;
  • IF一个像素是亮的,THEN使它较亮;
    最终得到的 Q Q Q如下右图所示:
    输入和输出的隶属度函数
    对于任何输入 z 0 z_0 z0,输出 v 0 v_0 v0由下式给出:
    v 0 = μ d a r k ( z 0 ) × v d + μ g r a y ( z 0 ) × v g + μ b r i g h t ( z 0 ) × v b μ d a r k ( z 0 ) + μ g r a y ( z 0 ) + μ b r i g h t ( z 0 ) v_0 = \frac{\mu_{dark}(z_0) \times v_d + \mu_{gray}(z_0) \times v_g + \mu_{bright}(z_0) \times v_b}{\mu_{dark}(z_0) + \mu_{gray}(z_0) + \mu_{bright}(z_0)} v0=μdark(z0)+μgray(z0)+μbright(z0)μdark(z0)×vd+μgray(z0)×vg+μbright(z0)×vb

使用模糊集合进行空间滤波

例如一个模糊集合概念的边缘提取算法:如果一个像素属于平滑区,则令其为白色,否则令其为黑色;这个概念可以翻译为如下的规则集:
示例邻域
如图为邻域,假设像素标为 z i , i = 1 , 2 , ⋯   , 9 z_i,i = 1,2,\cdots,9 zi,i=1,2,,9 d i d_i di表示第 i i i个邻点和中心点的灰度差 d i = z i − z 5 d_i = z_i - z_5 di=ziz5

  • I F   d 2 = 0   A N D   d 6 = 0   T H E N   z 5 = 白色 IF\ d_2 = 0 \ AND \ d_6 = 0\ THEN\ z_5 = 白色 IF d2=0 AND d6=0 THEN z5=白色
  • I F   d 6 = 0   A N D   d 8 = 0   T H E N   z 5 = 白色 IF\ d_6 = 0 \ AND \ d_8 = 0\ THEN\ z_5 = 白色 IF d6=0 AND d8=0 THEN z5=白色
  • I F   d 8 = 0   A N D   d 4 = 0   T H E N   z 5 = 白色 IF\ d_8 = 0 \ AND \ d_4 = 0\ THEN\ z_5 = 白色 IF d8=0 AND d4=0 THEN z5=白色
  • I F   d 4 = 0   A N D   d 2 = 0   T H E N   z 5 = 白色 IF\ d_4 = 0 \ AND \ d_2 = 0\ THEN\ z_5 = 白色 IF d4=0 AND d2=0 THEN z5=白色
  • E L S E   z 5 = 黑色 ELSE\ z_5 = 黑色 ELSE z5=黑色

相关文章:

  • 论文教程之 哈佛细读文献实用方法
  • RT-Thread线程管理与调度
  • Docker 化你的 Go 应用程序
  • 3.ROS2笔记-ROS2开发环境配置
  • 手写堆(Heap)
  • java-php-python-ssm白樵校园物品交易系统计算机毕业设计
  • C语言详解《位段+联合体+枚举》
  • 2.ROS2笔记-ROS2命令行操作
  • 【Proteus】:入门学习
  • SpringBoot启动流程简析
  • 如何在网站上安装 WordPress
  • java毕业设计社区健康管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • 17、Java——汽车租赁系统
  • SpringSecurity系列 - 15 SpringSecurity 记住我 RememberMe
  • 2022出海东南亚:越南电商市场现状及网红营销特点
  • [NodeJS] 关于Buffer
  • 【comparator, comparable】小总结
  • 0x05 Python数据分析,Anaconda八斩刀
  • android图片蒙层
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • conda常用的命令
  • Flannel解读
  • js对象的深浅拷贝
  • Odoo domain写法及运用
  • react 代码优化(一) ——事件处理
  • Spring声明式事务管理之一:五大属性分析
  • vue:响应原理
  • vue的全局变量和全局拦截请求器
  • webpack+react项目初体验——记录我的webpack环境配置
  • Yeoman_Bower_Grunt
  • 面试总结JavaScript篇
  • 三分钟教你同步 Visual Studio Code 设置
  • 学习HTTP相关知识笔记
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​决定德拉瓦州地区版图的关键历史事件
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #Linux(Source Insight安装及工程建立)
  • #Linux(权限管理)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • ()、[]、{}、(())、[[]]命令替换
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET DataGridView数据绑定说明
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .Net多线程总结
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET和.COM和.CN域名区别
  • .net实现客户区延伸至至非客户区