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

被折叠的 条评论
为什么被折叠?



