主要内容

创建标记阻止图像roi和面具

这个例子展示了如何创建一个标记阻止图像roi。

在本例中,您使用两种方法来获取和显示带安全标签的数据。一种方法使用多边形ROI的对象存储的坐标肿瘤和正常组织的边界地区。的polyToBlockedImage函数图像ROI坐标转换成标签阻塞。第二种方法使用一个面具来表示一个二进制图像的分割成组织和背景。这个例子结合ROI和掩模图像中的信息来创建一个图像与数字对应像素标签肿瘤阻塞,正常组织,和背景区域。

创建一个阻塞图像使用修改后的版本的训练图像包含肿瘤的淋巴结组织,从CAMELYON16数据集。修改后的图像有三个粗分辨率的水平。空间引用已调整执行一致的长宽比和注册功能在每个级别。

bim = blockedImage (“tumor_091R.tif”);

标签数据加载

CAMELYON16数据集提供了标签肿瘤和正常区域为一组坐标指定手动标注区域边界对最好的分辨率水平。当边界内像素存在一个正常区域,肿瘤区域,对于那些像素是正常组织正确的标签。

加载标签数据阻塞的形象。这个例子使用一个修改版的标签tumor_091.tif图像从CAMELYON16数据集。原标签存储在XML格式。修改后的标签已经重新取样,文件保存为垫。

roiPoints =负载(“labelledROIs.mat”)
roiPoints =结构体字段:nonCancerRegions:{[46×2双]}cancerRegions:{6×1细胞}

代表作为ROI对象标签

创建多边形ROI的对象存储的坐标肿瘤和正常组织边界边界。

tumorPolys = cellfun(@(位置)images.roi.Polygon(位置=位置,可见=“上”颜色=“r”),roiPoints.cancerRegions);normalPolys = cellfun(@(位置)images.roi.Polygon(位置=位置,可见=“上”颜色=“g”),roiPoints.nonCancerRegions);

显示与原始数据上的标签roi

显示与多边形roi图像覆盖。roi有相同的坐标系统的形象,所以改变显示的图像的分辨率水平仍然呈现准确的roi。

h = bigimageshow (bim);集(tumorPolys、家长= gca);集(normalPolys、家长= gca);标题(“分辨率水平:“+ num2str (h.ResolutionLevel));

放大一个ROI。肿瘤区域边界所示红色,周围正常组织的内部地区绿色所示。

xlim(4290年[3940])ylim(3010[2680])标题(“分辨率水平:“+ num2str (h.ResolutionLevel));

创建标记了ROI的图像数据

使用polyToBlockedImage函数来创建一个标记了ROI的图像坐标数据。的polyToBlockedImage函数需要ROI坐标,ROI标签和图像作为输入输出的大小阻塞。

获得xy -正常区域,肿瘤区域的坐标数据,并结合成一个单一的roiPositions单元阵列。

normalRegions = roiPoints.nonCancerRegions;tumorRegions = roiPoints.cancerRegions;roiPositions = [normalRegions;tumorRegions];

发现正常和肿瘤区域的数量和分配标签1正常组织和标签2肿瘤组织。分配标签指定的顺序相同roiPositions。标签指定为uint8减少所需的内存存储值。

numNormalRegions =元素个数(normalRegions);numTumorRegions =元素个数(tumorRegions);roiLabelIDs = [(numNormalRegions 1“uint8”);2 * 1 (numTumorRegions 1“uint8”));

选择所需的分辨率水平为新的阻塞的形象。这个选择是一个权衡效率和准确性。使用粗分辨率水平减少处理时间和存储大小。使用一个更精细的分辨率水平增加了保存在面具的详细程度。粗分辨率水平可用于常规的roi多边形。小,徒手画的roi,高分辨率的水平可以更合适。对于这个示例,使用一个中等分辨率水平。

maskLevel = 2;

指定图像大小为新图像与原始图像的阻塞,荡妇在所需的分辨率水平。

图象尺寸= bim.Size (maskLevel 1:2);

创建一个标记了的形象。保持最初的封锁的空间参考图像,荡妇在所需的分辨率水平。默认情况下,像素不落在任何ROI分配数字标签0

bROILabels = polyToBlockedImage (roiPositions roiLabelIDs图象尺寸,BlockSize = bim.BlockSize (maskLevel 1:2),WorldStart = bim.WorldStart (maskLevel 1:2), WorldEnd = bim.WorldEnd (maskLevel 1:2));

显示ROI标签和原始数据的叠加

显示标签阻塞图像叠加在原始图像上。肿瘤所示红色区域,肿瘤和正常组织地区完全封闭在一个地区的绿色所示。背景和正常组织与背景蓝色所示,表明连接正常区域是错误地分类为背景。

hbim = bigimageshow (bim);showlabels (hbim bROILabels Colormap = [0 0 1;0 1 0;1 0 0]);

放大显示在正常组织地区绿色。直观地验证ROI边界表示有足够的细节。

xlim(4290年[3940])ylim (3010 [2680])

独立组织和背景使用面具

使用图像分割来创建一个面具,正确区分正常组织的背景。由于阈值需要阅读底层图像数据到内存中,背景和前景区域足够大,粗分辨率水平是适当的。面具是1(真正的)的像素灰度值小于130。填满小洞的面具表演形态关闭使用bwmorph函数。

btissueMask =应用(bim @ (bs) bwmorph (im2gray (bs.Data) < 130“关闭”),级别= 3);bigimageshow (btissueMask);

创建单独的标签阻塞的形象

结合组织面具和ROI图像标签数据到最后一个标签阻塞。虽然已经创建了ROI图像比组织更好的分辨率水平面具,他们可以一起处理,因为他们来自相同的形象和世界范围相同。使用combineLabelshelper函数,定义在这个例子。

bLabels =应用(bROILabels、@combineLabels ExtraImages = btissueMask);

显示标签阻塞图像叠加在原始图像上。三个标签(正常、肿瘤和背景)出现在绿色、红色和蓝色的分别。

hbim = bigimageshow (bim);showlabels (hbim bLabels Colormap = [0 0 1;0 1 0;1 0 0]);标题(“背景(蓝色),正常组织(绿色)、肿瘤(红色)”)

放大一个地区感兴趣的更详细地检查。

xlim(4290年[3940])ylim (3010 [2680])

金宝app支持函数

combineLabelshelper函数结合ROI-based标签图像和mask-based标签图像到一个单一的品牌形象。

函数btissueMask blabel = combineLabels (bs)%组织块小面具btissueMask = imresize (btissueMask、大小(bs.Data));%转换为标签,0是背景,1是前景。blabel = uint8 (btissueMask);%标签肿瘤区域2blabel (bs.Data = = 2) = 2;结束

另请参阅

||

相关的话题