2017-10-01 3 views
0

Octave-Forge画像パッケージのimfill関数を使用しようとしています。私は.mスクリプトを作ろうとしましたが、私はまた、Octave GUIからimfill関数を実行しようとしました。どちらも同じエラーが表示されます。GNU Octaveエラー "imfill:対話モードがサポートされていません"

error: imfill: interactive usage is not yet supported

「インタラクティブな使用法」とは何ですか?私はインタラクティブなインタプリタを使うとき、インタラクティブな使い方があると思いました。私はスクリプトを作成し、それを実行可能にし、CLIから実行することを「バッチモード」のように思っていました。

"対話型の使用"がサポートされていない場合、どのような使用法がサポートされていますか? 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 

答えて

0

「インタラクティブ」という用語で混乱しました。私がimfillの引数を1つだけ与えたのでエラーです。現在のところ、1つの引数(インタラクティブモードだと思います)を持つimfillを呼び出すのは、グレースケールイメージに対してのみ実装されています。 2番目のパラメータを使用すると、問題が修正されます。

Ifill = imfill(Iedge2, "holes"); 

のように、引数を調整してより良い結果を得ることができます。

+0

これは「不適切な言葉によるエラー」ではありません。 imfill(バイナリ型= 'imfill(bw)'という1つの引数)を呼び出す方法はまだ実装されていないことは明らかです。この使用法は、イメージ[documentation](https://octave.sourceforge.io/image/function/imfill.html)に記載されていますか?もちろん、不足している機能を提供するためのパッチを無料で提供してください。 – Andy

+0

こんにちは@Andy。多分あなたは正しいです。私はちょうど "インタラクティブ"が意味することを理解していない。 imfillは、白黒ではなく、グレースケールイメージ用にのみ実装されていたと私は混乱していました。 RTFMをもう少し良くする必要があります。 – noel

関連する問題