GNU Octave 错误 "imfill: interactive mode not supported"

GNU Octave error "imfill: interactive mode not supported"

我正在尝试使用 Octave-Forge 图像包中的 imfill 功能。我尝试制作一个 .m 脚本,还尝试从 Octave GUI 执行 imfill 函数。两次我都得到同样的错误:

error: imfill: interactive usage is not yet supported

什么是"interactive usage"?我认为交互式用法是当您使用交互式解释器时。我认为编写一个脚本,使其可执行,并且 运行 从 CLI 更像是 "batch mode".

如果不支持"interactive usage"那么支持什么样的用法?如何使用 imfill

下面我包含了违规代码。

fn   = args{1};                                                                                                                                              
I    = imread(fn);                                                                

Igray = rgb2gray(I);                                                           
Ibw   = im2bw(Igray);                                                          

se_2x2square = strel("square", 2);                                             

Iedge  = edge(uint8(Ibw));                                                     
Iedge2 = imdilate(Iedge, se_2x2square);                                        
Ifill  = imfill(Iedge2);

这里是 imfill 抛出错误的实际代码。

   if (islogical (img))
      ## imfill (BW)
      error ("imfill: interactive usage is not yet supported");
    else
      ## syntax: imfill (img)
      fill_holes = true;
    endif

我被"interactive"这个词弄糊涂了。错误是因为我只给了 imfill 一个参数。目前只用一个参数调用 imfill(我猜是交互模式)只针对灰度图像实现。使用第二个参数可以解决问题。

Ifill  = imfill(Iedge2, "holes");

,可以调整参数以获得更好的结果。