質問: bwareaopen関数の入力引数について matlabで、bwareaopen関数を用いて、プログラムを組もうとしました。 第一引数には、画像を、第二引数にピクセル数を入力すると動作しました。 しかし、第二引数に、変数を入れると、どうしてもデータ型が合わず、プログラムを実行することができません。 変数の型をどのように変えると動作させることができるでしょうか。 よろしくお願いします。
回答: バイナリ イメージからの小さなオブジェクトの削除 - matlab bwareaopen - mathworks 日本 上記リンク箇所(引数pの説明)と、実際にエラーを出した際に確認出来るbwareaopen内のvalid関数より、「double型・スカラ値・整数・非負」の値を設定する必要があります。なので、(ベクトルの場合)添え字を指定して、四捨五入して、絶対値を取り、double型にキャストすれば間違いなく入力できます。 下記はエラーを出してみて結果をキャプチャしたものです。 下記はサンプルコードです。 bw = logical(randi(2,100)-1); variable = 1000; bw2 = bwareaopen(bw,double(abs(round(variable(1)))));