imbinarize​関数でエラーが出てし​まいます。

2 Ansichten (letzte 30 Tage)
Nagae Ryoya
Nagae Ryoya am 19 Nov. 2019
Beantwortet: Kazuya am 19 Nov. 2019
%%画像入力
kaki_img=imread('box_dark.jpg'); %画像読み込み
%kakiimg=imcrop(kakiimg)
figure(2)
imshow(kaki_img,'Border','tight','InitialMagnification','fit');
%%画像全体のセグメンテーション
kaki_red=kaki_img(:,:,1); %画像のセグメンテーション(赤要素検出)
figure(3)
imshow(kaki_red,'Border','tight','InitialMagnification','fit');
%%画像の二値化
kaki_th=kaki_red>180;
figure(4)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
%%二値化画像の穴埋め
kaki_th=imfill(kaki_th,'holes');
figure(5)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
%%二値化画像のクリーンナップ(周囲の白を除去)
cc1=bwconncomp(kaki_th);
main1=regionprops(cc1,'Area');
A=[main1. Area];
[~,biggest]=max(A);
kaki_th(labelmatrix(cc1)~=biggest)=0; %最大の塊となっている1の要素以外の1の要素を0にする
figure(6)
imshow(kaki_th,'Border','tight','InitialMagnification','fit');
BW=imbinarize(kaki_th);
figure(7)
imshow(BW,'montage')
のプログラムにおいて、以下のようなエラーが出てしまいます。
エラー: imbinarize
I は以下のいずれかのタイプが必要です:
uint8, uint16, uint32, int8, int16, int32,
single, double
実際の型は logical でした。
エラー: imbinarize>validateImage (line 262)
validateattributes(I,supportedClasses,supportedAttribs,mfilename,'I');
エラー: imbinarize>parseInputs (line 198)
validateImage(I);
エラー: imbinarize (line 134)
[I,isNumericThreshold,options] =
parseInputs(I,varargin{:});
エラー: sisaku (line 33)
BW=imbinarize(kaki_th);
BW = ~kaki_th;
を用いてみても、うまくいきませんでした。
どのように変更したらエラーはなくなりますか。

Akzeptierte Antwort

Kazuya
Kazuya am 19 Nov. 2019
エラー: imbinarize
I は以下のいずれかのタイプが必要です:
uint8, uint16, uint32, int8, int16, int32,
single, double
実際の型は logical でした。
とある通り、
BW=imbinarize(kaki_th);
の時点で kaki_th が 0/1 のデータ(logical) であり既に2値化されています。imbinarize を実行する必要が無い、、のでしょうか?

Weitere Antworten (0)

Kategorien

Mehr zu Gravitation, Cosmology & Astrophysics finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!