在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转自: roipoly函数的用法 roipoly函数选择感兴趣的多边形区域。 BW = roipoly(I, c, r) c,r分别指每个顶点的列和行下标。选中的区域BW为1;反之,为0。 举例: I = imread('eight.tif'); 最近学习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。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论