MATLAB的函数roipoly

本文介绍了MATLAB中的roipoly函数,用于选择图像的感兴趣区域(ROI)。函数接受图像及顶点坐标,生成二值图像作为ROI模板。文中通过示例展示了如何静态指定ROI和交互式指定ROI的过程。

最近学习MATLAB的函数roipoly,对其用法进行了总结,(参考教材《数字图像的处理(matlab版)》第二版,作者冈萨雷斯(P90-91))

在MATLAB中,使用roipoly来选择一个感兴趣区域(ROI),该函数将生成一个多边形的ROI。函数的用法为:

1、B=roipoly(f,c,r);

其中f为要处理的图像,c和r分别是ROI的顶点对应的列坐标和行坐标(按顺序排列)。定点坐标的原点在左上角。B为一幅二值图像,大小与f相同,ROI之外为0,之内为1。图像B通常用做将操作限制在感兴区域内的一个模板。

例:clear all;

clc;

Img = imread('25.jpg');

Imag = Img(:,:,1);

c = [500 800 1000 800 500 300];

r = [300 300 550 800 800 550];

BW = roipoly(Img,c,r);

figure, imshow(BW);

 phi=2*2*(0.5-BW);

 figure;

imagesc(Img,[0,255]);

colormap(gray);

hold on

axis off;

axis equal;

 [c,h] = contour(phi,[0 0],'r');

 hold off;

BW的现实结果如下图:


原图加轮廓如下图:



2、B=roipoly(f);

交互地指定一个多边形的ROI,它将图像f显示到屏幕上,并让用户使用鼠标来指定一个多边形。如果省略法,B=roipoly,则在最后显示的图像上操作,定位并调整多边形的大小后,通过双击或右键单击该多边行的内部,然后从出现的菜单中选取Create mask,可创建模板B。

例:clear all;

clc;

Img = imread('25.jpg');

Imag = Img(:,:,1);

figure;

imagesc(Img,[0,255]);

colormap(gray);

hold on

axis off;

axis equal;

 text(150,60,'Left click to get points, right click to get end point','FontSize',[12],'Color', 'r');

       BW=roipoly;

        phi=2*2*(0.5-BW);

       hold on;

       [c,h] = contour(phi,[0 0],'r');

      hold off;

选择点构成一个闭合曲线如下图:


双击曲线内部之后的运行结果如下图:

 

3、[B,c,r]=roipoly(…);

要得到二值图像和多边形的顶点,可使用该方法,其中roipoly(…)表明了该函数的任何有效语法形式,和前面一样,c和r分别是ROI的顶点对应的列坐标和行坐标(按顺序排列)。当交互地指定ROI时,这种格式特别有用,它提供的多边形定点坐标可用于后续的程序中,或可以在以后复制出相同的ROI。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值