gpt4 book ai didi

matlab - 在图像上绘制多个区域 - imfreehand

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:06 24 4
gpt4 key购买 nike

我想在图像上手动绘制多个区域以创建绘制区域的二进制掩码(地面实况)。

我附上了代码,使用 imfreehand 完成一个区域的工作,但是一旦释放鼠标按钮,就会显示该单个区域的二进制掩码。有没有办法绘制多个区域然后显示二进制掩码? (多次调用 imfreehand 可能不起作用,因为每个图像的区域数量不同)。

h= imfreehand();

h = imfreehand(gca);
setColor(h,'red');

position = wait(h);
BW = createMask(h);
figure,imshow(BW);
axis on;

谢谢。

最佳答案

您可以循环直到得到一个空蒙版 - 这将表明用户已完成所有蒙版的绘制。
sz 为输出掩码的所需大小,然后

totMask = false( sz ); % accumulate all single object masks to this one
h = imfreehand( gca ); setColor(h,'red');
position = wait( h );
BW = createMask( h );
while sum(BW(:)) > 10 % less than 10 pixels is considered empty mask
totMask = totMask | BW; % add mask to global mask
% you might want to consider removing the old imfreehand object:
delete( h ); % try the effect of this line if it helps you or not.

% ask user for another mask
h = imfreehand( gca ); setColor(h,'red');
position = wait( h );
BW = createMask( h );
end
% show the resulting mask
figure; imshow( totMask ); title('multi-object mask');

关于matlab - 在图像上绘制多个区域 - imfreehand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23463516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com