实验五 二值形态学操作

一、实验目的
 了解二值形态学的基本运算
 掌握基本形态学运算的Matlab实现
 了解形态操作的应用
二、原理
    收缩和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
    膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。若输出图像为g(i,j),则它们的定义式为二值图像目标X是E的子集。用B代表结构元素,Bs代表结构元素B关于原点(0 , 0)的对称集合:
即Bs是B旋转180°获得的。给出了三种简单的结构元素。膨胀和腐蚀变换的定义式为:
膨胀
腐蚀
Matlab中用imdilate函数实现膨胀。用法为:
Imdilate(X,SE).其中X是待处理的图像,SE是结构元素对象。
例如:
bw = imread('text.tif');
se = strel('line',11,90);
bw2 = imdilate(bw,se);
imshow(bw), title('Original')
figure, imshow(bw2), title('Dilated')
Matlab用imerode函数实现图像腐蚀。用法为:
Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象。
例如:
I = imread('cameraman.tif');
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
三、练习
1 读取一幅图像,进行骨架化操作并得到其边界
2 读取一幅图像,转化为二进制图像,并计算其面积
3读取一幅图像,比较不同距离变换的图像效果

实验六、图像的边缘检测

一、实验目的
1、了解图像边缘提取的基本概念;
2、了解进行边缘提取的基本方法;
3、掌握用MATLAB语言进行图像边缘提取的方法。
二、实验原理
    图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。边缘检测实际上就是检测图像特征发生变化的位置。
    由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。边缘检测的方法大多数是基于方向导数掩模求卷积的方法。
    导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。
    一阶导数与是最简单的导数算子,它们分别求出了灰度在x和y方向上的变化率,而方向α上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导,差分公式参考相关教材。           
    函数f在某点的方向导数取得最大值的方向是,方向导数的最大值是称为梯度模。利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。为了运算简便,实际中采用梯度模的近似形式。另外,还有一些常用的算子,如Roberts算子和Sobel算子。
    由于Sobel算子是滤波算子的形式,用于提取边缘。我们可以利用快速卷积函数,简单有效,因此应用很广泛。
    拉普拉斯高斯(loG)算法是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。其原理为,灰度级变形成的边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对英语二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。
    MATLAB的图像处理工具箱中提供的edge函数可以实现检测边缘的功能,其语法格式如下:
BW = edge(I,'sobel')
BW = edge(I,'sobel',direction)
BW = edge(I,'roberts')
BW = edge(I,'log')
这里BW = edge(I,'sobel')采用Sobel算子进行边缘检测。BW = edge(I,'sobel',direction)可以指定算子方向,即:
direction=’horizontal’,为水平方向;
direction=’vertical’,为垂直方向;
direction=’both’,为水平和垂直两个方向。
BW = edge(I,'roberts')和BW = edge(I,'log')分别为用Roberts算子和拉普拉斯高斯算子进行边缘检测。
例:用三种算子进行边缘检测。
I=imread('eight.tif');
imshow(I)
BW1=edge(I,'roberts');
figure ,imshow(BW1),title('用Roberts算子')
BW2=edge(I,'sobel');
figure,imshow(BW2),title('用Sobel算子 ')
BW3=edge(I,'log');
figure,imshow(BW3),title('用拉普拉斯高斯算子')
三、实验要求
1、 读出MATLAB图像处理工具箱中提供的rice.tif这幅图像,并显示。
2、 分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之处。

实验七   图像编码

一 实验目的
1 了解图像编码的基本方法
2 了解Matlab实现图像编码
二 实验原理
1 行程编码
    行程编码又称行程长度编码(RLE,Run Length Encoding),是一种熵编码,其编码原理相当简单,即将具有相同值的连续串用其串长和一个代表值来代替,该连续串就称之为行程或行程,串长称为行程长度。例如,有一字符串“aabbbcddddd”,则经行程长度编码后,可以只用“2a3b1c5d”来表示。
2 霍夫曼编码
    Huffman方法根据源数据符号发生的概率进行编码。在源数据中出现概率越大的符号,相应的码越短;出现概率越小的符号,其码长越长,从而达到用尽可能少的码符号表示源数据。它在变长编码方法中是最佳的。
    通过如下实例来说明这种编码方法。
    设有编码输入 。其频率分布分别为 ,P(x2)=0.3, , , , 。现求其最佳霍夫曼编码 。
    具体编码方法是:①把输入元素按其出现概率的大小顺序排列起来,然后把最末两个具有最小概率的元素之概率加起来;②把该概率之和同其余概率由大到小排队,然后再把两个最小概率加起来,再重新排队;③重复②,直到最后只剩下两个概率为止。
3.预测编码
    预测编码是基于图像数据的空间或时间冗余特性,用相邻的已知像素(或像素块)来预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码。

FROM http://hi.baidu.com/zjlu/blog/item/e1f5e71fc7d1420e314e1574.html

THX !

二值形态学操作、图像的边缘检测、图像编码相关推荐

  1. 数字图像处理三 | 二值形态学操作(Distance Transform, 骨架提取,Conditional Dilation)的原理及Python实现

    图像处理总结3 文末有代码链接. 二值形态学 形态学起源于法国巴黎高等矿业学院,因为人家是搞地质的. 可见一斑,形态学的精要就是在于将图像看作是等高线组成的地形图,他的基本操作就是动土,平高填低等等. ...

  2. 【医学图像处理】9 二值形态学

    形态学及二值操作 1 形态学相关概念 2 二值形态学操作 2.1 二值膨胀 2.2 二值腐蚀 2.3 二值开操作 2.4 二值闭操作 2.5 二值形态学总结 3 二值形态学应用 1 形态学相关概念   ...

  3. 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀、膨胀、开启、闭合)

    9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 文章目录 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 1 算法原理 1.1 ...

  4. python + pyqt +opencv 有界面,对lable中的图片进行图像旋转,向右平移,向下平移,二值化,灰度,边缘检测

    对lable中的图片进行图像旋转,向右平移,向下平移,二值化,灰度,边缘检测 要求: 一个界面,具体界面内容自行设计但必须符合以下要求 多个操作按钮: 1.图像180°旋转 2.图像向右平移 3.图像 ...

  5. 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除

    9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 文章目录 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 1 算法原理 2 代码 3 效果 1 ...

  6. 9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充

    9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充 文章目录 9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充 1 算法原理 2 代码 3 效果 1 ...

  7. 9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测

    9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测(击中与击不中) 文章目录 9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测(击中与击不中) 1 算 ...

  8. 图像处理-二值形态学运算

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-10.html 数学形态学 数学形态学(Mathematical ...

  9. halcon 二值形态学 计算小颗粒数目例子

    *本程序来自halcon例程,但将不重要的行删除或注释,凸显二值形态学算子. *本程序演示基本的形体学操作. *本程序的目标市检测每一个(在暗背景上的明亮)小颗粒 * 图片->二值化->开 ...

最新文章

  1. python 语言-Python语言的一些基本常用语句
  2. VMware介绍与网络的三种模式
  3. 无法执行添加/移除操作,因为代码元素**是只读的
  4. 下拉框_jQuery 美化界面的下拉框
  5. Linux Ubuntu下Jupyter Notebook的安装
  6. hdu 3930 Broot 二次剩余
  7. 计算机win10+上锁,手把手教你在windows 10右键菜单中添加Bitlocker上锁/解锁教程-网络教程与技术 -亦是美网络...
  8. 组合模型——Tree models、Boosting、 Committee
  9. 14岁女孩寒夜蹭网上课看哭众人:不吃读书的苦,就要吃生活的苦
  10. pycharm激活方法到2099年
  11. js仿照 蚂蚁森林 效果
  12. Linux学习1-Xshell连接阿里云ECS服务器
  13. 淘宝爆款打造公式(仅供参考)
  14. Vue.config.silent = true
  15. WebDriver 上传下载文件---(虫师《selenium3自动化测试实战--基于Python语言笔记22》)...
  16. 机房收费系统——验收报告
  17. 大数据分析完28个省会城市后,我们发现存在感最低的省会城市竟是......
  18. 干翻Java_干翻Java!微软跨平台.NET Core 2.0版发布
  19. 多层高速PCB设计学习笔记(四)四层板实战(上)之常见模块要求
  20. WSL使用电脑自带声卡录制、播放声音尝试

热门文章

  1. python程序、画一个笑脸_如何使用canvas画一个微笑的表情(代码示例)
  2. 光模块该如何使用,光模块的使用方法介绍!
  3. [渝粤教育] 广东-国家-开放大学 21秋期末考试个人与团队管理10257k2
  4. 【渝粤教育】国家开放大学2018年春季 0699-22T阅读与写作 参考试题
  5. [渝粤教育] 西南科技大学 数据库应用 在线考试复习资料(3)
  6. 【渝粤题库】陕西师范大学210032学前心理学 作业(专升本)
  7. 【渝粤题库】陕西师范大学202871 婚姻家庭法作业
  8. remote vscode无git_vs code 使用git
  9. 虚拟现实技术利用计算机,虚拟现实技术在计算机专业教学中的应用思考
  10. Python实现石头-剪刀-布小游戏