• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

边界提取_MATLAB

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

下面是利用腐蚀算法进行边界提取,即原图减去腐蚀后的图得到边界

 1 f=imread('D:/picture/ZiXia.jpg');
 2 figure;
 3 subplot(2,2,1);
 4 imshow(f);
 5 title('原图');
 6 f=rgb2gray(f);
 7 f=im2bw(f);%图像二值化
 8 subplot(2,2,2);
 9 imshow(f);
10 title('人脸二值图像');
11 se=strel('square',3);%选取3*3正方形结构元素
12 Ie=imerode(f,se);%对原图像进行腐蚀,
13 Iout1=f-Ie;%原图像减去腐蚀结果
14 subplot(2,2,3);
15 imshow(Iout1);
16 title('直接边界轮廓提取')
17 Iout2=bwperim(f,4);%用bwperim提取边界
18 subplot(2,2,4);
19 imshow(Iout2);
20 title('用bwperim提取边界')

可以看到两种方法得到的提取结果都很不错。

下面介绍几个函数

函数一:im2bw

im2bw:基于阈值,将图像转变成二进制图像。

BW = im2bw(I, level):将灰度图像I转变成二级制图像BW

level:阈值等级,取值范围【0,1】

BW: 逻辑型

如果I中像素亮度比I*level大,则该值变为1,否则为0

通俗讲,就是阈值设置的大的话。原图只会保留下很亮的部分!

函数二:strel

Matlab中函数strel在操作结构元素应用,用于膨胀腐蚀及开闭运算等操作的结构元素对象
具体用法:SE = strel(shape,parameters)
创建由指定形状shape对应的结构元素。其中shape的种类有
arbitrary'
'pair'
'diamond'
'periodicline'
'disk'
'rectangle'
'line'
'square'
'octagon
参数parameters一般控制SE的大小。
例子:
se1 = strel('square',6)
% 创建6*6的正方形
se2 = strel('line',10,45)
% 创建直线长度10,角度45
se3 = strel('disk',15)
% 创建圆盘半径15

se4 = strel('ball',15,5)
% 创建椭圆体,半径15,高度5 

函数三:imerode

Matlab用imerode函数实现图像腐蚀。用法为:
Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象

函数四:bwperim函数

BW1 = imread('circbw.tif');
BW2 = bwperim(BW1,8); 
Bw1是提取的图像对象,8指的是八邻域,默认邻域类型为4邻域

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中String类型原理介绍发布时间:2022-07-18
下一篇:
matlab绘制函数一个数的分数次方发布时间:2022-07-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap