4.线性和卷积——边界问题、解决边界方法和Matlab实战_3
目录
边界问题
解决边界方法
裁剪
环绕
复制边缘
反射
Matlab实战
边界问题
进行过滤时出现的一件事是如何处理边界,因为您可能会问当过滤器脱离边缘时会发生什么。
当您的过滤器掉落边缘时会发生什么?
所以你必须考虑你想要的大小操作,这样就可以这样说明。
在这里,我们将使用一些旧的MatLab命名法,他们已经改变了它,因为旧的MatLab命名法实际上已经清楚了。如图:
这里我有一个函数f,我用g过滤它。
你可能会试着好好考虑一下,我想要的尺寸输出是多少。
并且有三种不同的可能尺寸。
一个是当g刚触及那个角落时,我开始得到反馈。
因此,如果我将g的中心点视为参考,我实际上会得到一个比原始函数更大的盒子。
另一方面,如果我想确保所有g实际上都是触摸f,那么我将再次使用中心点,最后我的输出比原来的要小。如图
而且,这被称为有效,因为所有这些点实际上都是正确的。
但问题是当我过滤55*55的图像时,我真的想要回55*55。
我不想回到58*58或52*52。
我想要的是同样的。如图:
所以在这里你看到我们把那个过滤器的中间放在角落里,然后我们回到相同的大小。
那么问题当然,是在这些像素下面突然出现了什么?
基本上当你进行过滤时,你必须告诉系统你想要什么。
解决边缘方法
MATLAB有几种方法可以考虑如何做到这一点。
我们将再次使用旧的MATLAB命名法,然后我将告诉你有关新的命名法。
所以有几种不同的方法。
裁剪
第一种方法叫做clip(裁剪)。看图
Clip基本上意味着:我假设外边界是黑色的。
然后我应用我的过滤器,所以在这里我可以看到我的过滤器。
当我拿出图像时,你会注意到这个东西在边缘变得很暗。
这是有道理的,因为黑色已经泄露。如图:
但那被称为裁剪。
环绕
另一种方法称为环绕。这是一种奇怪的方法。
它与我们稍后将讨论的一些傅里叶分析(重点知识)有关。
基本上它说我假设我的照片连续并且链接在一起。如图:
这意味着:你看到了边界那里被填写了东西。如图:
这就是图片这一侧的内容。这里更容易看到。
这些,这些红辣椒来自这里。
黄色的稻草来自那边。
这是假设您实际看到的是周期性信号。所以,如果您正在查看周期性信号。
接下来会发生的事情就是它开始时的东西。
那么,在过滤中,在图像过滤中,这不能很好地工作。
在这里,我将应用滤镜,然后我将剪切回原始尺寸的图像。
你会注意到这里有一些红色的东西。如图:
红色的东西来自哪里?
它实际上是从底部来的,因为它缠绕着。如图:
复制边缘
有一种称为复制边缘或复制的方法,你基本上可以扩展出来。原始图:
所以我只是扩展了相同的值。如图:
然后我运行我的过滤器,然后我拿出我的照片,这是合理的。如图:
复制方法是一个简单的方法,它给你一个合理的结果。
它基本上保持图像类型不变。
现在的问题是,统计数据当然是不同的。
因为你有这个漂亮的变化图像,然后你让一切都变得相同。
反射
因此,另一种方法称为反射。好的,有时被称为对称的。
那就是你,你反映出来的形象。原始图像:
在这里,我就是这样做的。如图:
事实上,让我在这里画画。
这是反射边缘。
实际上,如果我擦除它,很难看到那个边缘。
因为我基本上是,我拍摄图像然后再将它折叠起来。
所以,我把它拿出来。我应用我的过滤器。如图:
然后我拿出图像,它实际上做得很好。
所以,通常你要么想做所谓的复制,要么复制边缘或反射整个图像。
在新的MATLAB中,这些使用名为imfilter的函数表示,它来自图像处理工具箱。
你可以输入一个值。将该值放入,所以我们输入0,就像剪切一样。如图:
你可以用圆形环绕,然后复制边缘是复制的,反射是对称的。通常,您将使用复制或对称。如图:
小测验:
处理边界条件的反射方法是,在滤波中由于:
A)创建的图像具有与原始图像相同的统计数据。
B)计算是这些方法中最便宜的。
C)将像素设置为零很快。
D)以上都不是。
答案:C。A是校正的。通过执行该反射创建的图像具有相同的统计信息。B是错误的,这种计算对电脑来说无关要紧的。
Matlab实战
那么哪个是您最喜欢的处理边界问题的选择?
加载图像包,读取图像,创建高斯滤波器。
>> pkg load image;
>>
>> img = imread('fall-leaves.png');
>> imshow(img);
>>
>> filter_size = 21;
>> filter_sigma = 3;
>> filter = fspecial('gaussian', filter_size, filter_sigma);
记住高斯是特别的(指的是函数fspecial)。
现在,当您应用它时,请指定边参数。传入0等于默认值。
>> smoothed = imfilter(img, filter, 0);
运行代码,你可以看到沿着所有边界的黑色渗透。如图:
这是因为我们传入0。如果我们输入其他数字会怎么样?
试试看。输入圆形怎么样?
>> smoothed = imfilter(img, filter, ‘circular’);
运行代码,如图:
如果你仔细观察,你会看到这边的绿色渗透,而另一边则是一点点红色。
试试复制。
>> smoothed = imfilter(img, filter, ‘replicate’);
运行代码,如图:
复制并不算太糟糕。没有明显的影响。
最后尝试对称,或称为跨边界反射。
>> smoothed = imfilter(img, filter, ‘symmetric’);
也不错,实际上与复制没有太大区别。
您可以随意尝试这些不同的选项,过滤器大小和Sigma。
——学会编写自己的代码,才能练出真功夫。
4.线性和卷积——边界问题、解决边界方法和Matlab实战_3相关推荐
- 【Java 泛型】使用上下边界通配符解决泛型擦除问题
文章目录 前言 一.使用上边界通配符示例 二.分析字节码的附加信息 前言 上一篇博客 [Java 泛型]泛型用法 ( 泛型编译期擦除 | 上界通配符 <? extends T> | 下界通 ...
- 边界值分析法—解决边界限制问题
目录 一.解决穷举场景-等价类划分法 二.解决边界限制问题-边界值说明 01定义: 02步骤: 03优化(7点优化5点) 04总结 三.解决多条件有依赖关系测试-判定表 01:介绍 02:步骤 四.对 ...
- 戈登贝尔奖获得者张林峰:「AI + Science」的路径思考,突破科学边界、解决困难问题,做一个牧羊少年...
图片来源:网络 撰文:张林峰,北京深势科技公司创始人及首席科学家,戈登贝尔奖获得者 编辑:贾 伟 这篇文章是我近期一些思考的总结.这些思考离不开近几年来与很多小伙伴日日夜夜的探讨,我深表怀念和感激 ...
- 目标、物体识别(检测)object detection 中的 bounding boxes 是什么? 边界区域、边界框、边界盒
边界区域.边界框.边界盒 参考文章:人脸检测中的bounding box regression详解
- 边界外推和边界处理--cv::copyMakeBorder()和cv::borderInterpolate()
OpenCV 边界外推和边界处理 一.边界外推 在图像处理的时候,我们会面临对边界的处理问题. 在OpenCV中的滤波操作,得到的输出图像与源图像的形状是一样的. 为了实现这种效果,OpenCV采用的 ...
- ARCMAP将同一图层多要素合并为一个并消除边界——县行政边界合并为市
ARCMAP将同一图层多要素合并为一个并消除边界--县行政边界合并为市 打开融合工具 检查属性表增加一个具有相同属性的字段 导出结果
- cesium绘制中国边界,设置边界样式
cesium绘制中国边界,设置边界样式,步骤如下: 步骤一: 从http://datav.aliyun.com/portal/school/atlas/area_selector网站下载geojson ...
- 村边界、社区边界、乡镇边界、县区市省边界数据,shp格式
中国各省.市.县区.边界.乡镇边界.行政村边界.社区边界数据,数据格式shp文件.采用WGS-84坐标系和SHP格式,使数据的使用和集成更加便捷. 有研究需要的可以和我们联系.
- phaser3设置重力gravity、检查边界WorldBounds、边界回弹Bounce,碰撞
phaser3设置重力gravity.检查边界WorldBounds.边界回弹Bounce,碰撞: create: function () {//静态地板组var platforms = this.p ...
最新文章
- NHibernate之旅(8):巧用组件之依赖对象
- hive快还是mysql快_HBase相对Hive查询速度快的对比
- jquery生成二维码
- 引导类加载器 Bootstrap ClassLoader
- 【转】人工智能教程-前言
- 破除“论文至上”!两部委发文规范SCI指标使用
- 线程中如何使用对象_在 Flink 算子中使用多线程如何保证不丢数据?
- 58 到家数据库 30 条军规解读
- 《Hadoop MapReduce实战手册》一1.10 使用MapReduce监控UI
- Python拟合SHARP红外测距传感器相关数据
- [渝粤教育] 南京森林警察学院 森林植物识别技术 ——珍稀植物识别 参考 资料
- 单元格内多个姓名拆分成一列_excel一个单元格中有多个名字,怎样拆分这些名字,名字是用空格分开的《excel批量分列》...
- wei10-笔记本突然没有声音了!解决方法
- MP4文件格式的相关内容
- ZUCC_BB平台-Quiz
- 桌面虚拟化项目的前期规划和测算
- python 机器人运动仿真_基于ros平台的移动机器人的设计与运动仿真-创新创业训练计划.pdf...
- 美版有锁iphone 如何上电信3G
- 代理模式 静态代理、JDK动态代理、Cglib动态代理
- python 英文语义分析_spinrewriter英文伪原创工具,Python对接API示例
热门文章
- 人人学IoT 助学思维导图
- oracle存储tar,Linux环境使用TAR命令快速部署安装Oracle
- Spark之RDD理论篇
- PyCharm双击或默认情况下是插入的输入状态解决方法
- 深度学习经典算法 | 遗传算法详解
- html做3d游戏进微波,射频微波电路设计.html(350页)-原创力文档
- php编写一个投票程序,实例学习PHP之投票程序篇(一)
- 列标题 如何删除gridcontrol_GridControl简单属性操作
- windows中安装64位MySQL及连接MySQL和重置MySQL密码
- 增加一行减少一行_【第2171期】一行 CSS 代码的魅力