如何在matlab中提取感兴趣区域内的对象

tyt*_*amu 4 matlab image roi image-processing

我有兴趣提取区域内的对象.

例如,

图1显示了我的激光轮廓的强度分布.根据激光强度,我将轮廓划分为2个感兴趣区域(ROI1和ROI2).

图2显示了我的正响应的exp结果和激光强度分布的重叠.正响应数据文件由x和y坐标组成.如您所见,结果散布在激光轮廓图像上.

这是我想要做的,我想提取ROI2中的斑点并丢弃所有其余的,如图3所示.我该怎么做?具体来说,如何在matlab中定义不规则形状ROI2并提取正响应数据的坐标.谢谢您的帮助.

在此输入图像描述

Gha*_*aul 5

正如eykanal所说,你可以使用impoly函数在你的图像中创建你想要的任何ROI.提取coordiantes的一般解决方案是创建所需的ROI,并使用find提取坐标和一些设置操作以删除不需要的点.像这样:

imshow(image)
h         = impoly() ;      %# draw ROI1
ROI1      = createMask(h);  %# create binary mask of ROI1
h2        = impoly();       %# draw dummy_ROI consisting of ROI1+ROI2
dummy_ROI = createMask(h2); %# create binary mask
ROI2      = dummy_ROI-ROI1; %# create ROI2

p      = find(ROI2);        %# find all coordinates of ROI2
points = intersect(ind,p);  %# find all points with linear index ind that are
                            %# part of ROI2
Run Code Online (Sandbox Code Playgroud)