imbinarize関数でエラーが出てしまいます。
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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;
を用いてみても、うまくいきませんでした。
どのように変更したらエラーはなくなりますか。
0 Kommentare
Akzeptierte Antwort
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 を実行する必要が無い、、のでしょうか?
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu イメージ タイプの変換 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!