第九章 形态学图像处理
来源:互联网 发布:删了windows.old就崩溃 编辑:程序博客网 时间:2024/05/28 05:16
- 第九章 形态学图像处理
- 预备知识
- 二值图像集合和逻辑运算符
- 膨胀和腐蚀
- 膨胀
- 腐蚀
- 膨胀与腐蚀的结合
- 开运算与闭运算
- 击中或不击中变换
- 使用查找表
- 函数bwmorph
- 预备知识
第九章 形态学图像处理
预备知识
二值图像、集合和逻辑运算符
- 相交(与)
>> g2 = f & g;>> subplot(131), imshow(f), title('原图')>> subplot(132), imshow(g), title('第二张图')>> subplot(133), imshow(g2), title('相交')
- 合并(或)
>> g = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\gt.tif');>> g1 = f | g;>> subplot(131), imshow(f), title('原图')>> subplot(132), imshow(g), title('第二张图')>> subplot(133), imshow(g1), title('合并')
- 取反运算(非)
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\utk.tif');>> g = ~f;>> subplot(121), imshow(f), title('原图')>> subplot(122), imshow(g), title('取反')
- 差运算
>> g3 = f &~ g;>> subplot(131), imshow(f), title('原图')>> subplot(132), imshow(g), title('第二张图')>> subplot(133), imshow(g3), title('差')
膨胀和腐蚀
膨胀
膨胀是在二值图像中“加长”或“变粗”的操作。
- imdilate函数执行膨胀运算
基本语法: A2 = imdilate(A, B)
其中,A和A2都是二值图像,B是指定结构元素的由0和1组成的矩阵。
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\broken-text.tif');>> B = [0 1 0; 1 1 1; 0 1 0];>> f2 = imdilate(f, B);>> subplot(121), imshow(f), title('原图')>> subplot(122), imshow(f2), title('膨胀后的图像')
![这里写图片描述](http://img.blog.csdn.net/20170630121604699?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgzMTEwNDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)- 函数strel
基本语法: se = strel(shape, parameters)
其中,shape是指定希望形状的字符串,parameters是指定形状信息的一列参数
腐蚀
腐蚀“收缩”或“细化”二值图像中的对象。
- imerode 函数实现图像的腐蚀。其语法于膨胀函数大体一样
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\wirebond-mask.tif');>> se = strel('disk', 10);>> A2 = imerode(f, se);>> se = strel('disk', 5);>> A3 = imerode(f, se);>> se = strel('disk', 20);>> A4 = imerode(f, se);>> subplot(221), imshow(f), title('原图')>> subplot(222), imshow(A2), title('R = 10')>> subplot(223), imshow(A3), title('R = 5')>> subplot(224), imshow(A4), title('R = 20')
膨胀与腐蚀的结合
开运算与闭运算
- C = imopen(A, B)开运算(先腐蚀后膨胀)
- C = imclose(A, B)闭运算(先膨胀后腐蚀)
其中,A是一幅二值图像,B是一个元素值为0和1的矩阵。
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\shapes.tif');>> se = strel('square', 20);>> fo = imopen(f, se);>> fc = imclose(f, se);>> foc = imclose(fo, se);>> subplot(221), imshow(f), title('原图')>> subplot(222), imshow(fo), title('开运算')>> subplot(223), imshow(fc), title('闭运算')>> subplot(224), imshow(foc), title('混合运算')
![这里写图片描述](http://img.blog.csdn.net/20170630124756484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgzMTEwNDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\noisy-fingerprint.tif');>> se = strel('square', 3);>> fo = imopen(f, se);>> foc = imclose(fo, se);>> subplot(131), imshow(f), title('原图')>> subplot(132), imshow(fo), title('开运算')>> subplot(133), imshow(foc), title('再闭运算')
![这里写图片描述](http://img.blog.csdn.net/20170630125341037?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgzMTEwNDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)击中或不击中变换
- 函数bwhitmiss
语法:C = bwhitmiss(A, B1, B2)
其中,C为输出结果,A为输入图像,B1,B2为结构元素
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\small-squares.tif');>> B1 = strel([0 0 0 ;0 1 1;0 1 0]);>> B2 = strel([1 1 1 ;1 0 0;1 0 0]);>> C = bwhitmiss(f, B1, B2);>> subplot(121), imshow(f), title('原图')>> subplot(122), imshow(C), title('变换后')
![这里写图片描述](http://img.blog.csdn.net/20170630133729666?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgzMTEwNDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)使用查找表
- makelut函数基于一个提供给用户的函数构造一个查找表
- applylut使用makelut产生的查找表来处理二值图像
自定义函数endpoints
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\bone-skel.tif');>> g = endpoints(f);>> subplot(121), imshow(f), title('原图')>> subplot(122), imshow(g), title('使用查找表')
函数bwmorph
bwmorph函数可基于膨胀,腐蚀和查找表操作的组合实现操作。
基本语法:g = bwmorph(f, operation, n)
其中,f 是一幅输入的二值图像,operation是一个指定期望操作的字符串,n 是一个用于指定将被重复的操作次数的正整数。
>> f = imread('D:\picture\MATLAB\冈萨雷斯数字图像处理MATLAB版图片\dipum_images_ch09\noisy-fingerprint.tif');>> se = strel('square', 3);>> fo = imopen(f, se);>> foc = imclose(fo, se);>> g1=bwmorph(foc,'thin',1);>> g2=bwmorph(foc,'thin',2);>> subplot(1,3,1),imshow(f), title('原图')>> subplot(1,3,1),imshow(foc), title('原图')>> subplot(1,3,2),imshow(g1), title('细化一次')>> subplot(1,3,3),imshow(g1), title('细化两次')
细化无穷次
>> g2=bwmorph(foc,'thin',Inf);>> figure, imshow(g2)
阅读全文
0 0
- 第九章 形态学图像处理
- 第九章 形态学图像处理
- 第九章(1至3节)形态学图像处理
- 【Matlab数字图像处理】第九章:形态学
- 形态学图像处理
- 形态学图像处理
- 形态学图像处理
- 形态学图像处理
- 图像的形态学处理
- 形态学的图像处理
- openCV 形态学图像处理
- 图像处理之形态学
- 形态学图像处理
- 图像的形态学处理
- 形态学图像处理
- 一、图像处理--形态学
- 形态学图像处理
- 形态学图像处理
- 【OpenCL】OpenCL编程基本流程及完整示例
- Android 最全的AES加密算法及其实现(前所未有的震撼)
- WebService之UUID 二
- hdu-Area2 多边形面积的并
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- 第九章 形态学图像处理
- jsp通过js按钮导出word小结
- WebPack是什么?
- Doc2Vec简单例子
- HiAR Glasses六月底预售,第三季度发货(用AR看世界,世界大有不同)
- 通过HIDDEV编程接口读取易方数码笔的坐标数据
- gradle加速下载jar包 标签: gradle
- springmvc + mybatis程序中出现的配置文件介绍以及配置
- 设计模式 之 准备开始之前(转载23种经典的jdk中设计模式)