在二进制掩码中提取像素值

48次观看(最近30天)
我有一个图像和ROI点。我做了以下操作来提取ROI,通过创建与 poly2mask。 现在,我想扩展蒙版图像的值。
我的问题是,我无法使用下面的代码将零保留在蒙版的图像中。请你帮助我好吗?
s = size(img);二进制蒙版的百分比
bw = poly2mask(x,y,s(1),s(2));%创建二进制面具
ROI = IMG;
ROI(BW == 0)= 0;
ROI = ROI(ROI> 0);%仅保持非零值

答案(1)

约瑟夫·郑
约瑟夫·郑 2021年6月11日
由于您已经创建了一个二进制掩码,因此您可以索引乘以“。”。
例如%虚拟图像
img = imread('Pears.png');
bwimg = single(rgb2gray(img));
[r c] = size(bwimg);
图(1),子图(131),imagesc(bwimg);结肠灰色的
标题(“原始图像”
例如,虚拟面膜gen
x = c*rand(1,4);
y = r*rand(1,4);
x(end+1)= x(1);
y(end+1)= y(1);
%创建口罩
bw = poly2mask(x,y,r,c);
子图(132),imagesc(bw); colormap灰色的
标题('面具'
%extractroi
%索引乘以蒙版乘以外部为0,内部为1
ROI = BWIMG。*BW;
子图(133),imagesc(ROI); colormap灰色的;标题(“施加面具”

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!