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

深度学习(九)-图像形态操作

仿射变换

仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。平直性是指图像经过仿射变换后,直线仍然是直线;平行性是指图像在完成仿射变换后,平行线仍然是平行线。

平移

 镜像

旋转

透视变换

  • 透视变换是将图片投影到一个新的视平面,也称作投影映射.它是二维(x,y)到三维(X,Y,Z),再到另一个二维(x’,y’)空间的映射.
  • 相对于仿射变换,它提供了更大的灵活性,将一个四边形区域映射到另一个四边形区域(不一定是平行四边形).透视变换可用于图像形状校正。

算数运算 

图像加法

假如图片1的第i个像素值是150,图片2的第i个像素值是150,相加后是255,因为只有8位,溢出了

图像减法

图像缩放 

缩放

图像缩放(image scaling)是指对数字图像的大小进行调整的过程。将分辨率为(w,h)的图像,缩放为(w', h')的图像,水平方向系数为Sx = w' / w, 垂直方向缩放系数为S y= h' / h。缩放变换矩阵为:

图像缩小

图像缩小可以通过删除矩阵中的元素来实现,例如:下面的例子进行隔行、隔列删除后,高度、宽度均减小为原来的一半

 图像放大

 

腐蚀与膨胀

图像腐蚀
腐蚀是最基本的形态学操作之一,它能够将图像的边界点消除,使图像沿着边界向内收缩,也可以将小于指定结构体元素的部分去除。腐蚀用来“收缩”或者“细化”二值图像中的前景,借此实现去除噪声、元素分割等功能。
图像膨胀
图像膨胀(dilate)是指根据原图像的形状,向外进行扩充。如果图像内两个对象的距离较近,那么在膨胀的过程中,两个对象可能会连通在一起。膨胀操作对填补图像分割后图像内所存在的空白相当有帮助。
图像开运算
开运算进行的操作是先将图像腐蚀,再对腐蚀的结果进行膨胀。开运算可以用于去噪、计数等。

 

 

图像闭运算
闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。

 

形态学梯度
形态学梯度运算是用图像的膨胀图像减腐蚀图像的操作,该操作可以获取原始图像中前景图像的边缘。

 

礼帽运算
礼帽运算是用原始图像减去其开运算图像的操作。礼帽运算能够获取图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息。

 

黑帽运算
黑帽运算是用闭运算图像减去原始图像的操作。黑帽运算能够获取图像内部的小孔,或前景色中的小黑点,或者得到比原始图像的边缘更暗的边缘部分。

 

开运算和腐蚀区别
  • ‌腐蚀‌是一种使图像边界向内部收缩的操作,它的主要作用是消除物体边界的点,使得目标区域范围变小。腐蚀操作可以去除小于结构元素的噪声点,特别是那些孤立的、不重要的点。通过腐蚀操作,可以缩小或消除一些小的物体,使图像中的物体边界收缩,这对于消除无意义的物体或细化物体轮廓非常有用‌12。
  • ‌开运算‌则是先进行腐蚀操作,然后再进行膨胀操作的过程。开运算的主要作用是去除图像上的细小噪声,并平滑物体边界。通过先腐蚀后膨胀的过程,开运算可以去除孤立的小点、毛刺以及较小的物体,同时保持较大物体的面积不变。这种操作常用于分离物体、消除小区域,以及平滑较大物体的边界‌12。

简而言之,腐蚀主要是缩小或消除图像中的小物体,而开运算是通过先腐蚀后膨胀的过程,旨在去除图像上的细小噪声并平滑物体边界,同时保持较大物体的基本形状不变。这两种操作在图像处理中各有其用途,腐蚀更侧重于缩小和消除,而开运算则更侧重于通过先缩小后增大的方式来改善图像质

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • UDP通信实现
  • 有希带你深入理解指针(4)
  • 软考-高级架构师Keywords(上半部分)
  • sping boot 基于 RESTful 风格,模拟增删改查操作
  • 伽罗华域GF的简单计算
  • 『功能项目』战士的A键连击【33】
  • 《深入探究 <侠盗猎车手 5>(GTA5)的 C++ 代码世界》
  • 脏页标记技术的优缺点详解
  • 【重学 MySQL】十五、过滤数据
  • React入门教程:创建你的第一个React应用
  • SSM+Ajax实现广告系统
  • ICM20948 DMP代码详解(6)
  • SLT—List详解
  • 【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解
  • 最新OpenStreetMap POI数据(附下载教程)
  • Android 架构优化~MVP 架构改造
  • Create React App 使用
  • flask接收请求并推入栈
  • JavaScript学习总结——原型
  • PHP CLI应用的调试原理
  • 记一次和乔布斯合作最难忘的经历
  • 聊聊flink的TableFactory
  • 漂亮刷新控件-iOS
  • 前端技术周刊 2019-01-14:客户端存储
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 提醒我喝水chrome插件开发指南
  • 我的面试准备过程--容器(更新中)
  • 小试R空间处理新库sf
  • HanLP分词命名实体提取详解
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (function(){})()的分步解析
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (二)PySpark3:SparkSQL编程
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (回溯) LeetCode 131. 分割回文串
  • (十一)c52学习之旅-动态数码管
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一) storm的集群安装与配置
  • (转)原始图像数据和PDF中的图像数据
  • (转载)OpenStack Hacker养成指南
  • (状压dp)uva 10817 Headmaster's Headache
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .ai域名是什么后缀?
  • .net core 管理用户机密
  • .NET开源、简单、实用的数据库文档生成工具
  • .sh
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • /etc/motd and /etc/issue
  • /var/spool/postfix/maildrop 下有大量文件
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116