第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波13 - 平滑低通滤波器 -盒式滤波器核

这里写目录标题

  • 平滑(低通)空间滤波器
      • 盒式滤波器核

平滑(低通)空间滤波器

平滑(也称平均)空间滤波器用于降低灰度的急剧过渡

  • 在图像重取样之前平滑图像以减少混淆
  • 用于减少图像中无关细节
  • 平滑因灰度级数量不足导致的图像中的伪轮廓
  • 平滑核与一幅图像的卷积会模糊图像

盒式滤波器核

盒式核是最简单的可分离低通滤波器,其系数的值相同(通常为1)
m×nm\times{n}m×n的盒式滤波器为1的一个m×nm\times{n}m×n的阵列,其前面有一个归一化的常数,通过是1除以系数值之和(通过是1/mn1/mn1/mn

def box_filter(image, kernel):""":param image: input image:param kernel: input kernel:return: image after convolution"""img_h = image.shape[0]img_w = image.shape[1]m = kernel.shape[0]n = kernel.shape[1]# paddingpadding_h = int((m -1)/2)padding_w = int((n -1)/2)image_pad = np.zeros((image.shape[0]+padding_h*2, image.shape[1]+padding_w*2), np.uint8)image_pad[padding_h:padding_h+img_h, padding_w:padding_w+img_w] = imageimage_convol = image.copy()for i in range(padding_h, img_h + padding_h):for j in range(padding_w, img_w + padding_w):temp = np.sum(image_pad[i-padding_h:i+padding_h+1, j-padding_w:j+padding_w+1] * kernel)image_convol[i - padding_h][j - padding_w] = temp # 1/(m * n) * tempreturn image_convol
# 盒式滤波器核
img = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH03/Fig0333(a)(test_pattern_blurring_orig).tif', 0)kernel_size = [3, 11, 21]fig = plt.figure(figsize=(10, 10))
for i in range(len(kernel_size) + 1):ax = fig.add_subplot(2, 2, i+1)if i == 0:ax.imshow(img, cmap='gray', vmin=0, vmax=255), ax.set_xticks([]), ax.set_yticks([])ax.set_title('Original')else:kernel = np.ones([kernel_size[i-1], kernel_size[i-1]])kernel = kernel / kernel.sizeimg_dst = box_filter(img, kernel)ax.imshow(img_dst, cmap='gray', vmin=0, vmax=255), ax.set_xticks([]), ax.set_yticks([])ax.set_title(f'kernel size {kernel_size[i-1]}')
plt.tight_layout()
plt.show()

在这里插入图片描述

# 盒式滤波器核 可分离核的效果
img = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH03/Fig0333(a)(test_pattern_blurring_orig).tif', 0)kernel_size = [3, 11, 21]fig = plt.figure(figsize=(10, 10))
for i in range(len(kernel_size) + 1):ax = fig.add_subplot(2, 2, i+1)if i == 0:ax.imshow(img, cmap='gray', vmin=0, vmax=255), ax.set_xticks([]), ax.set_yticks([])ax.set_title('Original')else:kernel = np.ones([kernel_size[i-1], kernel_size[i-1]])kernel = kernel / kernel.sizeimg_dst = separate_kernel_conv2D(img, kernel)img_dst = normalize(img_dst) * 255ax.imshow(img_dst, cmap='gray', vmin=0, vmax=255), ax.set_xticks([]), ax.set_yticks([])ax.set_title(f'kernel size {kernel_size[i-1]}')
plt.tight_layout()
plt.show()

在这里插入图片描述

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

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

相关文章

python中str用法_python数据类型之str用法

1、首字母大写 语法:S.capitalize() ->str title "today is a good day"title_catitle.capitalize() print(title_ca) 结果:today is a good day 2、大写转小写 1 语法:S.casefold() ->str2 3 title "TODAY is a GOOD …

WPF 窗体设置

WPF 当窗体最大化时控件位置的大小调整&#xff1a; View Code 1 <Window x:Class"WpfApplication1.MainWindow"2 xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"3 xmlns:x"http://schemas.microsoft.com/wi…

Git实践

Git是什么自不必说。Git和gitlab安装和实践在后边的俩篇中会写。本篇仅重点写Git自动部署。Git同样有Hooks,可以用于各种需求。可以控制提交commit名称&#xff0c;可以控制代码规范&#xff0c;也当然包含以下要介绍的自动部署&#xff0c;也不仅包含这些。Git自动部署简单的思…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波14 - 平滑低通滤波器 -高斯滤波器核的生成方法

目录平滑&#xff08;低通&#xff09;空间滤波器低通高斯滤波器核统计排序&#xff08;非线性&#xff09;滤波器平滑&#xff08;低通&#xff09;空间滤波器 平滑&#xff08;也称平均&#xff09;空间滤波器用于降低灰度的急剧过渡 在图像重取样之前平滑图像以减少混淆用…

易经0

--- 阳爻 - - 阴爻 从下往上 画爻 (yao) 三画卦 --> 2^38 (八卦) 那天有空用程序 解析一下 六画卦 --> 2^664(卦) 卦形记忆歌&#xff1a;宋代朱熹的《周易本义》写了《八卦取象歌》帮人记卦形&#xff1a; 乾三连&#xff0c;坤六断&#xff1b;震仰盂&#xff0c;艮覆碗…

python3.7怎么安装turtle_python怎么安装turtle

turtle库是Python语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的控制&#xff0c;在这个平面坐标系中移动&#xff0c;从而在它爬行的路径上绘制了图…

强制html元素不随窗口缩小而换行

<style> div{ white-space:nowrap; } </style> 强制div内的元素不随窗口缩小而换行 本文出自 “点滴积累” 博客&#xff0c;请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1679366

静态变量、方法

static 变量---所有对象共享一个变量&#xff08;全局变量区&#xff09;&#xff0c;无需构造---概念上和.net相同所有对象共享一个变量的实质&#xff1a;声明时&#xff1a;堆区存放一个地址&#xff0c;地址指向全局变量区。然后当类对象声明时&#xff0c;只是在堆区中为自…

python语言是机器语言_Python解释器:源代码--字节码--机器语言

"一个用编译性语言比如C或C写的程序可以从源文件&#xff08;即C或C语言&#xff09;转换到一个你的计算机使用的语言&#xff08;二进制代码&#xff0c;即0和1&#xff09;。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候&#xff0c;连接/转载器软…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波15 - 锐化高通滤波器 -拉普拉斯核(二阶导数)

目录锐化&#xff08;高通&#xff09;空间滤波器基础 - 一阶导数和二阶导数的锐化滤波器二阶导数锐化图像--拉普拉斯锐化&#xff08;高通&#xff09;空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过&#xff08;负责细节的&#xff09;高频…

Debian on VirtualBox下共享win7文件夹设置

借用&#xff1a;http://www.dbasoul.com/2010/695.html 1. 安装增强功能包(Guest Additions) 参考文档&#xff1a;Debian下安装VirtualBox增强功能2. 设置共享文件夹 重启完成后点击”设备(Devices)” -> 共享文件夹(Shared Folders)菜单&#xff0c;添加一个共享文件夹&a…

第四周作业

1、复制/etc/skel目录为/home/tuser1&#xff0c;要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。cp -r /etc/skel/ /home/tuser1/chmod -R go--- /home/tuser1/2、编辑/etc/group文件&#xff0c;添加组hadoop。vim /etc/group G, o, hadoop:x:501, esc, …

C# 导出 Excel 数字列出现‘0’的解决办法

在DataGird的中某一列全是数字并且长度大于15的字符&#xff0c;在导出excel时数字列第15-18位全部为0。解决办法&#xff1a;在需导出数字列前加入英文字符状态的单引号&#xff08;‘ &#xff09;&#xff0c;如&#xff1a;<asp:TemplateField HeaderText"身份证号…

在python是什么意思_python 的 表示什么

python代码里经常会需要用到各种各样的运算符&#xff0c;这里我将要和大家介绍的是Python中的&&#xff0c;想知道他是什么意思吗&#xff1f;那就和小编一起来了解一下吧。&是位运算符-与&#xff0c;类似的还有|&#xff08;或&#xff09;&#xff0c;!(非)。 整数…

Ubuntu 更改ROOT密码的方法

真蛋疼啊&#xff0c;刚安装了Ubuntu 需要安装程序&#xff0c;提示输入root密码&#xff0c;我才想起来Ubuntu的root密码是什么&#xff0c;我貌似没设置啊。 上网搜索了下相关信息&#xff0c;才知道原来root默认是没有密码的。 需要使用以下命令 sudo passwd root 然后会要求…

DevExpress控件GridControl中的布局详解 【转】

DevExpress控件GridControl中的布局详解 【转】 2012-10-24 13:27:28| 分类&#xff1a; devexpress | 标签&#xff1a;devexpress |举报|字号 订阅 http://www.cnblogs.com/martintuan/archive/2011/03/05/1971472.html 进行DevExpress控件GridControl的使用时&#xff…

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

目录锐化&#xff08;高通&#xff09;空间滤波器钝化掩蔽和高提升滤波锐化&#xff08;高通&#xff09;空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过&#xff08;负责细节的&#xff09;高频&#xff0c;衰减或抑制低频 钝化掩蔽和高提…

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

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

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

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