bwboundaries関数についてです。
조회 수: 4 (최근 30일)
이전 댓글 표시
画像のセグメンテーション後、
閾値を設定し、
画像の二値化、
’imfill’を用いた二値化画像の穴埋め、
’bwmorph’によるエッジ化、
’imbidilate’,’imfill’,’imerode’を用いたモルフォロジー処理、
二値化画像のクリーンナップを行ったあと、bwboundaries関数を使いたいのですが、うまくいきません。
jpg拡張子の画像を読み込ませています。
解決策はありますか?
댓글 수: 2
Yoshio
2019년 10월 11일
どのようにうまくいかないのか、エラーが出るのか、意図したように動作しないのか、具体的に、できればデータとうまくいかないプログラムを添付して説明いただけないでしょうか。
채택된 답변
Etsuo Maeda
2019년 10월 17일
편집: Etsuo Maeda
2019년 10월 17일
レスポンスが止まっているみたいなので、回答しておきます。
エラー出力を下から読んでみてください。
エラー: 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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 モルフォロジー演算에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!