当前位置: 首页 > 知识库问答 >
问题:

在图像上绘制多个区域-不写意

沈俊美
2023-03-14

我想在一个图像上手动绘制多个区域来创建一个绘制区域的二进制掩码(地面真相)。

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

h= imfreehand();

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

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

多谢了。

共有1个答案

方琦
2023-03-14

您可以循环直到得到一个空掩码-这将表明用户已完成绘制所有掩码。
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');
 类似资料:
  • 使用matplotlib时,我可以使用{importmatplotlib.pyplotas plt}因为我使用Tkinter,所以我也会使用PicreCanvasTkAgg来做同样的事情 有人能帮我在如何实现matplotlib的停顿效果在菲格勒CanvasTkAgg。

  • 我的makeWhiteTransparent方法如下所示: 我尝试将graphics.drawImage(newImage,null,0,0)更改为graphics.drawImage(newImage,0,0,null),并按照建议将TYPE_4BYTE_ABGR更改为TYPE_INT_ARGB,但没有任何效果。错误仍然存在。

  • 因此,我正在创建一个cordova应用程序,在该应用程序中,我从iphone库中拍摄一张照片,将其绘制到画布上,并向其添加另一张图像,以便将其保存为一张照片。到目前为止,我从iphone照片库中绘制的照片可以毫无问题地绘制到画布上,但是第二张图片没有。 当我加载第二张图像时,它首先被添加到具有绝对定位的div中,以便将其移动到我想要的任何位置。之后,我得到了实际的图像,它的来源和位置,并尝试将其绘

  • 问题内容: 我尝试在图像的底部添加文本,实际上我已经完成了,但是如果我的文本较长,那么图像的宽度要从两侧切开,为简化起见,我希望文本在多行中长于图片宽度。这是我的代码: 问题答案: 您可以用来分解成字符串列表,每个字符串最多为字符:

  • 操作步骤: 第一种:添加圆形区域 ①进入编辑界面,选择区域图层后,点击右上角"添加圆形区域"。 ②在地图上"点击并拖拽绘制圆形" ,释放鼠标完成绘制。 ③点击"完成"按钮,圆形区域添加完成。 第二种:添加区域 ①进入编辑界面,选择区域图层后,点击右上角"添加区域"。 ②在地图上"点击开始绘制区域" ,双击鼠标完成绘制。 注意 ●添加区域不可少于3个节点。 ③点击"完成"按钮,区域绘制完成。 操作动

  • 问题内容: 我有一张根据某些数据计算得出的图表,绘制在matplotlib中。我想在此图的全局最大值周围绘制一个矩形区域。我试过,但通话时似乎没有出现矩形 那么,如何在matplotlib图上绘制矩形区域?谢谢! 问题答案: 最可能的原因是在调用axhspan时将数据单元用作x参数。从函数的文档(我的重点): y坐标以数据单位为单位, x坐标以轴(相对于0-1)为单位 。 因此,任何向左拉伸为0或