机器视觉学习笔记--二值图像处理
2017-03-26 21:35
260 查看
基本理论
二值图像只有1和0两级灰度节省内存、快速处理、许多灰度图像的特征以二值形式出现,如边缘,轮廓灯
4邻点
八邻点
像素路径
从像素[i,j]到[m,n]之间由邻点连接的路径,4连通为4路径,8连通为8路径。
连通性
如果存在一条从像素p到像素q的路径,则称p与q是连通的。
连通部件:一个像素集合,如果集合内每一个像素都与集合内其他像素连通,则称该集合为一个连通部件
二值图像的几何属性
大小/面积:A
位置:(x,y)position二值图像区域的中心
方向:l,部件上所有像素到该直线的距离的平方和最小
边界:L,区域边缘像素的集合
周长:P,边缘像素长度;分界线长度
紧密性:C=P*P/A
二值图像的处理
阈值化(Threshholding):将灰度图转化为二值图像img=imread('test.jpg') %读取图像 imshow(img) %显示图像 BW=im2bw(img,0.5) %图像二值化,0.5为阈值 imshow(BW) %显示二值化结果
行程编码(Run-length encode):表达二值图像的一种紧凑方式
方法一:只编码1,记录每行1出现的位置区间
如上图所示的二值图像可以表示为:
(1,3), (7,2), (12,4), (17,2), (20,3)
(5,13), (19,4)
(1,3), (17,6)
方法二:分别按顺序记录1,0出现的个数,第一个数字为1出现的次数。
上图可以表示为:
3, 3, 2, 3, 4, 1, 2, 1, 3;
0, 4 ,13 ,1, 4;
3, 13, 6
边界跟踪:以一定的顺序跟踪一个区域的边缘素
聚类/连通部件记
BW=[1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 ]; L = bwlabel(BW,4)%4是4连通
结果如下:
ans =
1 1 1 0 0 0 0 0 1 1 1 0 2 2 0 0 1 1 1 0 2 2 0 0 1 1 1 0 0 0 3 0 1 1 1 0 0 0 3 0 1 1 1 0 0 0 3 0 1 1 1 0 0 3 3 0 1 1 1 0 0 0 0 0
可以把二值图像区域缩成线条,以逼近区域的中心线,也称之为骨
实现代码如下(细化代码参考源):
clear;close all; img = imread('thin.png'); BW = ~im2bw(img,0.80); figure('name','thin'); subplot(121); imshow(BW); BW2 = bwmorph(BW,'thin',100);%100表示算法迭代次数。 subplot(122); imshow(BW2);
相关文章推荐
- 【转】matlab图像处理学习笔记-数学形态与二值图像操
- OpenCV学习笔记(八)——图像处理之直方图ImgProc
- 我的OpenCV学习笔记(三):利用操作像素完成简单的图像处理:加入椒盐噪声、图像翻转、改变对比度、图像锐化
- matlab图像处理学习笔记1
- [学习笔记]形态学图像处理-击中或击不中变换
- php学习笔记(十四)php的图像处理函数
- 关于MATLAB图像处理学习笔记20070929
- 图像编程学习笔记1——bmp文件结构处理与显示
- VTK学习笔记之图像处理
- [学习笔记]形态学图像处理-膨胀与腐蚀
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- 【Matlab图像处理】学习笔记:提取图片的R,G,B分量
- GDI+图像处理学习笔记——改变图像的透明度 .
- 数字图像处理学习笔记--图像空间域增强
- matlab图像处理学习笔记-数学形态与二值图像操作
- vc图像处理学习笔记1-图像格式分析及显示
- 【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片
- 【Matlab图像处理】学习笔记:cat函数合成RGB 图像
- OpenCV 2 学习笔记(8): 利用邻域处理图像与简单的算术图像处理算法:图像滤波与加权和
- OpenCV学习笔记(八)——图像处理之直方图ImgProc