位置: IT常识 - 正文

【计算机视觉】图像增强——图像的形态学操作(计算机视觉的未来发展方向有哪些)

编辑:rootadmin
【计算机视觉】图像增强——图像的形态学操作

推荐整理分享【计算机视觉】图像增强——图像的形态学操作(计算机视觉的未来发展方向有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:计算机视觉属于什么专业,计算机视觉技术的应用,计算机视觉就业前景,计算机视觉的应用,计算机视觉的应用,计算机视觉就业前景,计算机视觉技术的应用,计算机视觉就业前景,内容如对您有帮助,希望把文章链接给更多的朋友!

个人简介: 

> 📦个人主页:赵四司机 > 🏆学习方向:JAVA后端开发  > ⏰往期文章:SpringBoot项目整合微信支付 > 🔔博主推荐网站:牛客网 刷题|面试|找工作神器 > 📣种一棵树最好的时间是十年前,其次是现在! > 💖喜欢的话麻烦点点关注喔,你们的支持是我的最大动力。

前言:

通过这篇文章你将了解到常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力。 

目录

一:相关公式

二:相关原理

1.膨胀操作

2.腐蚀操作

3.相关性质

4.开运算

5.闭运算

6.开闭运算示例

三:代码实现

1.图像膨胀

2.图像腐蚀

3.膨胀与腐蚀的综合使用  

方法一:先腐蚀(imerode),再膨胀(imdilate)

方法二:使用形态开启函数(imopen)


一:相关公式

二:相关原理1.膨胀操作

        用结构元进行膨胀运算可以描述为: 结构元的原点像素经过待膨胀的二值图像中所有1像素点时,对应结构元所有1像素的二值图像像素置为1像素。

示例如下:

(a) 集合A;     (b) 结构元素B(“+”为原点);   (c) 结构元素B的映像; (d) 图中两种阴影部分(深色为扩大的部分)合起来为集合A⊕B 

图像膨胀可以应用于将带有间断字符的文本连接起来从而使文本变清晰,如下图:

2.腐蚀操作

        用结构元进行腐蚀运算可以描述为: 结构元的原点像素经过待腐蚀的二值图像中所有1像素点时,如果结构元中有一个1像素没有对应待腐蚀二值图像的1像素,则对应结构元原点的待腐蚀二值图像1像素置为0。

示例如下:

(a) 集合  A (阴影部分);(b) 结构元素 B(阴影部分,“+”为原点); (c) 图中深色阴影部分给出A⊙B(浅色为原属于 A,先腐蚀掉的部分) 

利用腐蚀操作我们可以去除图像中比较小的图形,如下图:

3.相关性质用B 来膨胀A得到的集合是 B 的位移与A 至少有一个非零元素相交时B 的原点位置的集合。A用B来腐蚀的结果:B 完全包含在A中时B 的原点位置的集合。膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 一个运算对图像目标的操作相当于另一个运算对图像背景的操作。 4.开运算

去除比结构元小的区域像素,表现为用同一结构元先腐蚀后膨胀。 

5.闭运算

 填充比结构元小的孔洞,变现为用同一结构元膨胀后再腐蚀。

6.开闭运算示例

图1是结构元A,图2到5是开运算,图6到9是闭运算。

三:代码实现1.图像膨胀

a)对包含矩形对象的二进制图像进行膨胀操作。

BW=zeros(9,10);

BW(4:6,4:7)=1;

imshow(BW,'InitialMagnification','fit')

图3.5.1-1 膨胀前矩阵 

se=strel('square',3);

BW2=imdilate(BW,se);

figure,imshow(BW2,'InitialMagnification','fit')

图3.5.1-2 膨胀后的矩阵

        首先创建一个9*10的矩阵,并且在中央填充1,随后用strel函数生成结构元素对象,strel函数的原型为SE = strel(shape,parameters),shape表示创建指定形状的结构元素,在这里创建的shape为”square”,parameters为3,表示创建一个3*3的正方形。随后用imdilate函数对图像进行膨胀处理,处理的输入图像为BW,结构元素对象为se。膨胀操作选定模板后计算模板内的有效最大值,然后替换模板中心点,膨胀后灰度值变高,图像的白色明亮部分变多。

b)改变上述结构元素类型(如:line, diamond, disk等),重新进行膨胀操作。

Line: BW=zeros(9,10);

BW(4:6,4:7)=1;

imshow(BW,'notruesize')

图3.5.1-3 原始矩阵

se=strel('disk',3,0);  

BW2=imdilate(BW,se);

figure,imshow(BW2,'notruesize')

图3.5.1-4 膨胀后的矩阵(disk类型)

        改变结构元素的形状为disk类型,该类型结构元素要求有两个参数,函数原型为SE = strel('disk',R,N),其中R表示圆盘的半径大小,其值必须为正整数,N取值只能为0、4、6或8,当N大于0时,圆盘形结构元素由一组N(或N+2)个周期线型结构元素来近似。当N等于0时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于R的像素组成。N也可以不填,此时N默认为4。图像膨胀的操作也可以理解为在图像边缘添加像素值的操作,具体操作为用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最大值,用这个最大值替换当前像素值,给图像中的对象边界添加像素,使二值图像扩大一圈。

由于我选取的结构元素为圆形,所以膨胀操作向四周呈圆状膨胀。

c)对图像‘text.png’(系统自带图像可以直接读取)进行上述操作,观察不同结构元素膨胀的效果。

image = imread('text.png');

figure,imshow(image,'InitialMagnification','fit');

图3.5.1-5 text图像

se = strel('square',3);

BW3 = imdilate(image,se);

figure,imshow(BW3,'InitialMagnification','fit');

图3.5.1-6 膨胀后的图像(square类型)

se=strel('disk',3.0,0);         

BW4=imdilate(image,se);

【计算机视觉】图像增强——图像的形态学操作(计算机视觉的未来发展方向有哪些)

figure,imshow(BW4,'InitialMagnification','fit')

图3.5.1-7 膨胀后的图像(disk类型)

        可以看到,不同的结构元素得到的膨胀结果是不同的,这是因为其膨胀方向不一样,且与结构元素的大小有关。

2.图像腐蚀

a) 对图像‘circbw.tif’(系统自带图像可以直接读取)进行腐蚀操作。

BW1=imread('circbw.tif');

se=strel('arbitrary',eye(5));

BW2=imerode(BW1,se);

figure,subplot(121),imshow(BW1),title('腐蚀前');

subplot(122),imshow(BW2),title('腐蚀后');

图3.5.2-1 图像腐蚀对比

        图像腐蚀函数为imerode(),操作为用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值,删除对象边界的某些像素,使二值图像减小一圈。由于实验图像是二值图像,所以可以看到消去的部分变成了黑色(灰度值为0)。

b) 对图像‘text.tif’进行腐蚀操作。

BW=imread('text.png');

se=strel('line',11,90);

BW2=imerode(BW,se);

figure,subplot(121),imshow(BW),title('腐蚀前');

subplot(122),imshow(BW2),title('腐蚀后');

图3.5.2-2 text图像腐蚀前后对比

        由于text.png图像大部分都是灰度值为0的区域,所以对其进行腐蚀会造成很大的消去面积(见图3.5.2-2),可见大部分面积都变成了黑色。

3.膨胀与腐蚀的综合使用  

a) 从原始图像‘circbw.tif’中删除电流线,仅保留芯片对象。

方法一:先腐蚀(imerode),再膨胀(imdilate)

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[40 30]); %选择适当大小的矩形结构元素

BW2=imerode(BW1,se);    %先腐蚀,删除较细的直线

figure,imshow(BW2)

BW3=imdilate(BW2,se);   %再膨胀,恢复矩形的大小

figure,imshow(BW3)

图3.5.3-1 图像膨胀与腐蚀应用(方法一)

        前面提到,图像的腐蚀和膨胀都是对图像的边缘部分进行像素值的改变,由于circbw图像的电流大部分都是细小的线路,可以考虑用图像的腐蚀来消去,从而保留面积较大的芯片部分,然而腐蚀操作会对图像的所有边缘进行消去,也就意味着芯片部分的边缘部分也会被消去,所以还要用膨胀操作来进行恢复,以恢复芯片原来被腐蚀的部分。这里考虑用长方形或正方形的结构元素比较适合,因为原始图像的像素分布呈方形分布。

方法二:使用形态开启函数(imopen)

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[30,20]);

BW2=imopen(BW1,se);      %开启操作

figure,imshow(BW2)

图3.5.3-2 图像膨胀与腐蚀应用(方法二)

图3.5.3-3 与方法一参数相同进行开运算结果

        开运算本质上也是对图像进行了腐蚀膨胀操作,其函数原型为IM2 = imopen(IM,SE/NHOOD),作用对象为灰度图像或二值图像,使用方法和imerode类似,也需要结构元素和作用对象,使用开运算可以平滑图像轮廓,消除图像狭窄细小部分,从而达到去除电流的目的(见图3.5.3-2)。可以看到也能达到去除电流的目的,但是既然说其原理是先腐蚀后膨胀,得到的结果应该和方法一是一样的,现在得到的结果不同是因为结构元素的参数不同,修改其参数和方法一一样,得到的结果和方法一的结果基本一致(见图3.5.3-3)。

b)改变结构元素的大小,重新进行开启操作,观察处理结果。

se=strel(‘rectangle’,[20 10]);

BW2=imopen(BW1,se);             %开启操作

figure,imshow(BW2);

图3.5.3-4 改变结构元素大小测试1

se=strel(‘rectangle’,[50 40]);

BW2=imopen(BW1,se);             %开启操作

figure,imshow(BW2);

图3.5.3-5 改变结构元素大小测试2

前面说到图像开启操作可以消去细线和平滑图像边缘,当结构元素的面积较大时,消去作用较明显,反之消去作用则较小(见图3.5.3-4及3.5.3-5)。

c)置结构元素大小为[4 3],同时观察形态开启(imopen)与闭合(imclose)的效果,总结形态开启与闭合在图像处理中的作用。

I=imread('circbw.tif');

imshow(I)

se=strel('rectangle',[4 3]);

I1=imopen(I,se);      %开启操作

I2=imclose(I,se);     %闭合操作

figure,imshow(I1)

figure,imshow(I2)

图3.5.3-6 形态开启与闭合结果

        形态开启操作可以平滑图像的边缘,消去细小狭窄的线条以及去除独立小点;而形态闭合操作则是先膨胀后腐蚀,可以看到闭合操作之后的白色部分面积变大了,且边缘也更平滑,说明闭合操作也可以起到平滑图像边缘的作用,且还能连接短缺的地方,融合窄的缺口,去掉小洞。

本文链接地址:https://www.jiuchutong.com/zhishi/299665.html 转载请保留说明!

上一篇:【编译原理】第三章部分课后题答案(编译原理第三版)

下一篇:CCF-CSP真题《202212-2 训练计划》思路+python,c++满分题解(2020ccf csp报名和考试时间)

  • 小米手表color2怎么播放音乐(小米手表color2怎么看小说)

    小米手表color2怎么播放音乐(小米手表color2怎么看小说)

  • OPPO Ace2的机身尺寸是多大(oppo ace参数)

    OPPO Ace2的机身尺寸是多大(oppo ace参数)

  • 抖音超出关注上限如何解决(抖音关注已经达到上限)

    抖音超出关注上限如何解决(抖音关注已经达到上限)

  • 苹果xr快充支持多少瓦(苹果xr快充支持20w吗)

    苹果xr快充支持多少瓦(苹果xr快充支持20w吗)

  • 爱玛原装电池什么牌子(爱玛电动车原装电池怎么样)

    爱玛原装电池什么牌子(爱玛电动车原装电池怎么样)

  • 淘宝红包省钱卡怎么用(开通淘宝红包省钱卡)

    淘宝红包省钱卡怎么用(开通淘宝红包省钱卡)

  • 苹果抖音卸载不干净打不开了(苹果抖音已卸载却显示还在)

    苹果抖音卸载不干净打不开了(苹果抖音已卸载却显示还在)

  • 微信自带表情包怎么更新(微信自带表情包图片大全)

    微信自带表情包怎么更新(微信自带表情包图片大全)

  • 苹果横屏只能一个方向(苹果横屏只能一个方向如何解决)

    苹果横屏只能一个方向(苹果横屏只能一个方向如何解决)

  • 屏幕时间密码能输几次(屏幕时间秘密忘记)

    屏幕时间密码能输几次(屏幕时间秘密忘记)

  • 业务流程图和数据流程图的区别(业务流程图和数据流程图例题与答案)

    业务流程图和数据流程图的区别(业务流程图和数据流程图例题与答案)

  • 苹果11怎么找回删除的照片(苹果11怎么找回id密码教程)

    苹果11怎么找回删除的照片(苹果11怎么找回id密码教程)

  • 抖音黑屏字幕怎么弄(抖音黑屏字幕怎么做的竖着)

    抖音黑屏字幕怎么弄(抖音黑屏字幕怎么做的竖着)

  • 注销抖音账号作品还在吗(注销抖音账号作者保证金怎么处理)

    注销抖音账号作品还在吗(注销抖音账号作者保证金怎么处理)

  • 小米ai音箱怎么调音量(小米ai音箱怎么连接蓝牙)

    小米ai音箱怎么调音量(小米ai音箱怎么连接蓝牙)

  • yue的四声调(月的四声调)

    yue的四声调(月的四声调)

  • 苹果耳机丢失如何找回(苹果耳机丢失如何查找手机位置)

    苹果耳机丢失如何找回(苹果耳机丢失如何查找手机位置)

  • p30pro传感器尺寸(华为p30pro传感器尺寸)

    p30pro传感器尺寸(华为p30pro传感器尺寸)

  • oppowifi备份后是乱码(手机wifi备份)

    oppowifi备份后是乱码(手机wifi备份)

  • qq没加好友怎么发消息(qq没加好友怎么临时会话)

    qq没加好友怎么发消息(qq没加好友怎么临时会话)

  • sql优化的几种方法(sql优化的几种方法有哪些)

    sql优化的几种方法(sql优化的几种方法有哪些)

  • 云骑士的系统是正版吗

    云骑士的系统是正版吗

  • 计算机一级excel函数(计算机一级excel操作题视频讲解)

    计算机一级excel函数(计算机一级excel操作题视频讲解)

  • 被移除的群聊如何删除(被移除群聊后还可以看聊天记录吗)

    被移除的群聊如何删除(被移除群聊后还可以看聊天记录吗)

  • 微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)(微信小程序开发平台)

    微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)(微信小程序开发平台)

  • phpcms html不可写怎么办(php写在html里不行)

    phpcms html不可写怎么办(php写在html里不行)

  • 承租方支付租房税费
  • 产品含税价格加10个点不含税扣掉8个点合理吗
  • 城建税计税依据扣除增值税期末留抵
  • 企业发生破产清算
  • 招待用烟的会计处理
  • 准予扣除的职工福利费
  • 固定资产明细账怎么填
  • 知道增值税如何计算开票金额
  • 金税盘的进项发票怎么导出
  • 职工教育经费能抵扣进项税
  • 个体工商户税务登记证需要什么资料
  • 移动电子发票怎么发送到邮箱
  • 私募投资基金投资者风险问卷调查
  • 如何确定合并报表的范围简答题
  • 发放工资的会计科目
  • 滴滴普票可以抵扣进项么
  • 公务费和业务费怎么算
  • 税局代开专票季度未达起征点怎么缴纳地税?
  • 库存现金与实际不符怎么调
  • 发票遗失如何补开
  • php正则匹配字符串
  • 智能路由器哪个牌子好
  • php中split
  • 高新技术企业研发费用归集
  • 银行代发工资会计科目怎么写
  • 继承房产印花税是按交易分额交吗
  • 安装虚拟windows
  • 演员片酬要分给经纪公司吗
  • php中实现文件上传需要用到哪几个函数
  • sklearn average precision
  • 模型参数是什么意思
  • php设置header参数
  • 汇算清缴补交所得税怎么做凭证
  • 弥补以前年度亏损怎么算
  • php定义变量的方法
  • mongodb 全文索引
  • 企业所得税计算器在线计算
  • 免税销售额和本期免税额
  • 增值税专用发票的税率是多少啊
  • 共管账户取钱需要多久到账
  • 税控盘的主要功能包括
  • 小规模主营业务成本是否含税
  • 上年的原材料发票可以算今年的成本吗
  • 公司人才账户有什么用
  • 用友无法填制凭证
  • 股权变更产生的税费
  • 银行受理汇票贴现业务
  • 新手公司内帐怎么做
  • sql语句计算两个字符
  • 通过SQL语句直接把表导出为XML格式
  • mysql 报错1045
  • Linux下mysql5.6.33安装配置教程
  • centos编译安装tcpdump工具
  • mac显示所有窗口的快捷键
  • mac如何设置默认打开程序
  • solaris挂载硬盘
  • ac1st19.dll
  • win7怎么禁止系统自动更新
  • Win10 Mobile 10572升级后QQ/微信无法发送图片
  • win8共享文件
  • 怎样取消进windows 密码
  • u盘比特率
  • npscheck.exe - npscheck是什么进程 有什么用
  • win8怎么弄出开始菜单键
  • js操作list
  • nodejs搭建web服务器
  • 疯狂Android讲义(kotlin版)
  • nodejs基础
  • nodejs图片合成
  • 查看linux中某个端口(port)是否被占用的方法
  • node用mongodb还是mysql好
  • android中edittext
  • c#未来展望
  • webview自定义视频播放器
  • python魔法方法有啥用
  • 社保扣缴客户端下载
  • 缴纳车辆购置税的会计处理
  • 我国烟草税的税点是多少
  • 江苏省国家税务局总局官网
  • 长治一诺代理记账公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设