第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波16 - 锐化高通滤波器 - 钝化掩蔽和高提升滤波

目录

  • 锐化(高通)空间滤波器
      • 钝化掩蔽和高提升滤波

锐化(高通)空间滤波器

  • 平滑通过称为低通滤波
  • 类似于积分运算
  • 锐化通常称为高通滤波
  • 微分运算
  • 高过(负责细节的)高频,衰减或抑制低频

钝化掩蔽和高提升滤波

  • 钝化掩蔽

  • 从原图像中减去一幅钝化(平滑后的)图像

  • 步骤:

  1. 模糊原图像
  2. 从原图像减去模糊后的图像(产生的差称为模板)
  3. 将模板与原图像相加

fˉ(x,y)\bar f(x,y)fˉ(x,y)表示模糊后的图像,则有
gmask(x,y)=f(x,y)−fˉ(x,y)(3.55)g_{mask}(x, y) = f(x, y) - \bar f(x,y) \tag{3.55}gmask(x,y)=f(x,y)fˉ(x,y)(3.55)
g(x,y)=f(x,y)+kgmask(x,y)(3.56)g(x,y) = f(x,y) + k g_{mask}(x, y) \tag{3.56}g(x,y)=f(x,y)+kgmask(x,y)(3.56)
权值k≥0k \ge 0k0k=1k = 1k=1时,它是钝化掩蔽k>1k > 1k>1时,这个过程称为高提升滤波,选择k≤1k \leq 1k1可以减少钝化模板的贡献。

# 钝化掩蔽过程
y = np.linspace(0.4,1, 7)
y = np.pad(y, (4, 4), mode='constant', constant_values=[0.4, 1])fig = plt.figure(figsize=(16, 8))
ax_1 = fig.add_subplot(2, 2, 1)
ax_1.plot(y, '-', label="y")
ax_1.legend(loc='best', fontsize=12)kernel = np.array([0.2, 0.6, 0.2])
y_bar = np.convolve(y, kernel, 'same')y_bar = y_bar[1:-1]
ax_2 = fig.add_subplot(2, 2, 2)
ax_2.plot(y_bar, '-', label='Smooth')
ax_2.legend(loc='best', fontsize=12)y = y[1:-1]
y_mask = y - y_barax_3 = fig.add_subplot(2, 2, 3)
ax_3.plot(y_mask, '-', label='y - y_bar')
ax_3.legend(loc='best', fontsize=12)y_dst = y + y_mask
y_dst = normalize(y_dst)
ax_4 = fig.add_subplot(2, 2, 4)
ax_4.plot(y_dst, '-', label='y + y_mask')
ax_4.legend(loc='best', fontsize=12)plt.tight_layout()
plt.show()

在这里插入图片描述

# 纯化掩蔽与高提升滤波
img_ori = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH03/Fig0338(a)(blurry_moon).tif", 0)kernel_31 = gauss_kernel((9, 9), sigma=1)
img_31 = separate_kernel_conv2D(img_ori, kernel=kernel_31)
img_31 = np.uint8(normalize(img_31) * 255)img_diff = img_ori - img_31img_dst_1 = img_ori + img_diff
img_dst_1 = np.uint8(normalize(img_dst_1) * 255)img_dst_2 = img_ori + 2 * img_diff
img_dst_2 = np.uint8(normalize(img_dst_2) * 255)img_dst_3 = img_ori - 3 * img_diff
img_dst_3 = np.uint8(normalize(img_dst_3) * 255)plt.figure(figsize=(15, 12))
plt.subplot(2,3,1), plt.imshow(img_ori,   'gray', vmax=255), plt.title("Original"), plt.xticks([]), plt.yticks([])
plt.subplot(2,3,2), plt.imshow(img_31,    'gray', vmax=255), plt.title("Smooth"), plt.xticks([]), plt.yticks([])
plt.subplot(2,3,3), plt.imshow(img_diff,  'gray', vmax=255), plt.title("Diff"), plt.xticks([]), plt.yticks([])
plt.subplot(2,3,4), plt.imshow(img_dst_1, 'gray', vmax=255), plt.title("k = 1"), plt.xticks([]), plt.yticks([])
plt.subplot(2,3,5), plt.imshow(img_dst_2, 'gray', vmax=255), plt.title("k = 2"), plt.xticks([]), plt.yticks([])
plt.subplot(2,3,6), plt.imshow(img_dst_2, 'gray', vmax=255), plt.title("k = 3"), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python画圆并填充图形颜色_如何使用python设计语言graphics绘制圆形图形

在python设计语言中,可以利用第三方包graphics绘制不同的图形,有圆形、直线、矩形等。如果想要绘制一个圆形,可以设置圆形的半径和坐标位置。下面利用一个实例说明绘制圆形,操作如下:工具/原料 python 截图工具 方法/步…

设计模式学习-工厂方法模式

在上文(设计模式学习-简单工厂模式)的模拟场景中,我们用简单工厂模式实现了VISA和MASTERARD卡的刷卡处理,系统成功上线并运行良好,突然有一天老大跑来说,我们的系统需要升级,提供对一般银联卡的支持。怎么办&#xff1…

3ds Max Shortcuts 快捷键大全

主界面 【Q】选择循环改变方式 【W】移动 【E】旋转 【R】缩放循环改变方式 【7】物体面数 【8】Environment 【9】Advanced lighting 【0】Render to Textures 【1】【2】【3】【4】【5】分别对应5个次物体级别,例如Edit Mesh中的点、线、面、多边形、 【F2】切换在…

word2010激活工具使用方法

1、关闭杀毒,关闭正打开着的word文档 2、执行Activator_v1.2.exe-->Activation Office 2010VL --》按1 --》完毕。 3、打开word--》文件--》帮助--》看右上角。 2、【补充】使用 Office 2010 Toolkit 下载地址: http://vdisk.weibo.com/s/yoz9R 或…

python编程单词排序_Python实现对文件进行单词划分并去重排序操作示例

本文实例讲述了Python实现对文件进行单词划分并去重排序操作。分享给大家供大家参考,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window breaks It is the east and Juliet is the sun Arise fair…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)

目录锐化(高通)空间滤波器使用一阶导数锐化图像-梯度锐化(高通)空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过(负责细节的)高频,衰减或抑制低频…

如何学习Linux / 新手入门

如何学习Linux / 新手入门 一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等…

opacity用法:

/* older safari/Chrome browsers */ -webkit-opacity: 0.5; /* Netscape and Older than Firefox 0.9 */ -moz-opacity: 0.5; /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/ -khtml-opacity: 0.5; /* IE9 etc...modern browsers */ opacity: .5; /* IE…

网络传输层之TCP、UDP详解

1、传输层存在的必要性 由于网络层的分组传输是不可靠的,无法了解数据到达终点的时间,无法了解数据未达终点的状态。因此有必要增强网络层提供服务的服务质量。 2、引入传输层的原因 面向连接的传输服务与面向连接的网络服务类似,都分为建立连…

关机与禁止关机代码

今天抽空,写完了定时关机程序的代码,测试了一下,还不错,以前写过个禁止关机的程序,用来测试一下,看哪个强,先运行禁止关机的程序,用Windows xp的关闭计算机试了一下,关不了. 代码很少: private procedure QueryEndSession(var Msg:TMessage);Message WM_QueryEndSession;…

pythonweb开发面试_Python web 面试题(一)

1、列举django的内置组件? url 、view、model、template、中间件 2、列举django中间件的5个方法?以及django中间件的应用场景? process_request(self,request) process_view(self, request, callback, callback_args, callback_kwargs) proce…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波18 - 低通、高通、带阻和带通滤波器、组合使用空间增强方法

低通、高通、带阻和带通滤波器 得到空间滤波器的第三种方法,生成一维滤波器函数,然后要么使用式(3.42)wvvTw vv^TwvvT生成二维可分离的滤波器函数,要么旋转这些一维函数来生成二维核。旋转后的一维函数是圆对称(各向同性&#x…

MySQL两千万数据优化迁移

最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。不过这些数据有大量的冗余字段和错误信息,极不方便做统计和分析。所以我需要创建一张新表&…

Linux Tomcat 6.0安装配置实践总结

系统环境: Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64位 Tomcat下载 从官方网站 http://tomcat.apache.org/下载你需要的Tomcat版本,目前Tomcat主要版本有Tomcat 6.0、Tomcat 7.0、Tomcat 8.0三个版本,下面我们以6.0(6.0.39…

如何给FormPanel表单中的元素赋值以及获取表单元素值

1.定义表单元素的name属性如下 var HLV new Ext.form.TextField({fieldLabel: 汇率,name:EXCHANGERATE,anchor: 30%}); 2.定义数据源 var ExchangeRatestore new Ext.data.Store({proxy: new Ext.data.HttpProxy({ url: WsECOTAX01.asmx/SelectExchangeRate, method: "po…

第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史

本章主要讲解频域域滤波的技术,主要技术用到是大家熟悉的傅里叶变换与傅里叶反变换。这里有比较多的篇幅讲解的傅里叶的推导进程,用到Numpy傅里叶变换。本章理论基础比较多,需要更多的耐心来阅读,有发现有错误,可以与我…

python中str是什么函数_python str函数怎么用

展开全部 是将一个2113对象转成字符串显示5261,注意只是显示用,有些对象4102转成字符串没有直1653接的意思。 str():将变量转化为字符串类型 a 1 b [1, 2, 3] str_a str(a) print(a) print(type(a)) str_b str(b) print(b) print(type(b)) The str()…

[ofbiz]less-than (lt;) and greater-than (gt;) symbols

问题描述&#xff1a; In field [updateItemStr] less-than (<) and greater-than (>) symbols are not allowed 此处的field [updateItemStr]是services的一个IN参数&#xff0c;错误描述的意思是"<,>"不能出现在这个域内。 解决办法&#xff1a; 在ser…

分页探究--Filter+JSTL

最近卡了一个功能就是分页&#xff0c;查了很多资料&#xff0c;分页大概是两种类型&#xff1a;一种是把数据库的东西全部查出来然后放在session里&#xff0c;用list一页一页传到页面&#xff0c;这样的消耗比较大;另一种就是使用sql语句的limit来进行数据库分页查询。我使用…