bwboundaries関数についてです。
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Nagae Ryoya
le 10 Oct 2019
Commenté : Etsuo Maeda
le 23 Oct 2019
画像のセグメンテーション後、
閾値を設定し、
画像の二値化、
’imfill’を用いた二値化画像の穴埋め、
’bwmorph’によるエッジ化、
’imbidilate’,’imfill’,’imerode’を用いたモルフォロジー処理、
二値化画像のクリーンナップを行ったあと、bwboundaries関数を使いたいのですが、うまくいきません。
jpg拡張子の画像を読み込ませています。
解決策はありますか?
2 commentaires
Yoshio
le 11 Oct 2019
どのようにうまくいかないのか、エラーが出るのか、意図したように動作しないのか、具体的に、できればデータとうまくいかないプログラムを添付して説明いただけないでしょうか。
Réponse acceptée
Etsuo Maeda
le 17 Oct 2019
Modifié(e) : Etsuo Maeda
le 17 Oct 2019
レスポンスが止まっているみたいなので、回答しておきます。
エラー出力を下から読んでみてください。
エラー: imbinarize
I は以下のいずれかのタイプが必要です:
uint8, uint16, uint32, int8, int16,
int32, single, double
実際の型は logical でした。
エラー: imbinarize>validateImage (line
261)
validateattributes(I,supportedClasses,supportedAttribs,mfilename,'I');
エラー: imbinarize>parseInputs (line
197)
validateImage(I);
エラー: imbinarize (line 133)
[I,isNumericThreshold,options] =
parseInputs(I,varargin{:});
エラー: matumaru2 (line 52)
BW=~imbinarize(kaki_th);
"二値化画像のクリーンナップを行ったあと、bwboundaries関数を使いたいのですが、うまくいきません。"
と質問されていますが、bwboundaries関数でエラーになっているのではなく、その一行前の imbinarize関数でエラーになっています。
matumaru2 の imbinarizeでエラーになっているのは、imbinarize の validateImageでエラーになっていることが原因です。
validateImageが何をしているのかは、一見わからないと思いますが、エラーメッセージを読めばわかるはずです。
エラー: imbinarize
I は以下のいずれかのタイプが必要です:
uint8, uint16, uint32, int8, int16,
int32, single, double
実際の型は logical でした。
つまり、imbinarizeは
uint8, uint16, uint32, int8, int16,
int32, single, double
の入力を受け付けますが、実際に入力された kaki_th は logical であったためにエラーになっています。
doc imbinarize
で入力引数の制限を確認してみてください。
imbinarizeは入力を1/ 0 にする関数で、logicalの配列は最初から1/ 0 なので、当たり前といえば当たり前のエラーですね。
BW を kaki_th の1/ 0 を反転したものにしたいのであれば、
BW = ~kaki_th;
としておけば良さそうです。
HTH
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur モルフォロジー演算 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!