imbinarize関数でエラーが出てしまいます。
13 views (last 30 days)
Show older comments
%%画像入力
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 Comments
Accepted Answer
Kazuya
on 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 Comments
More Answers (0)
See Also
Categories
Find more on イメージ タイプの変換 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!