画像処理の入力について
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
こちらの動画を参考にして自分の持っている画像の二値化を行ったら、エラーが出て、「入力がlogical(バイナリ)の場合は2次元でなければなりません。」といったメッセージが出たのですが、どういう意味かわかりません。
また、アプリから「イメージの領域解析」を使ってファイルからイメージの読み込みを行ったのですが、「入力イメージのクラスはlogicalでなければなりません。」とでました。この「入力はlogical」の意味がよく分かりません。
よろしくお願いいたします。
0 Kommentare
Akzeptierte Antwort
Kenta
am 15 Jan. 2020
I=imread('onion.png');
Ig=rgb2gray(I);
b=imbinarize(Ig);
こんにちは、logicalは、1か0かの値を持っていて、真が偽かなどの判別に使われることもあります。
詳しくは、下のURLをご参照ください。またネットで、「matlab logical」と検索すればたくさん出てくるので適宜ご参照ください
アプリの件ですが、上のように、2値化した画像 b を読み込めば、うまくアプリを使用できます。
あらかじめ、自分で前処理をしておき、それをアプリに読み込ませるイメージと思います。
はじめのエラーのほうは、あまり状況が想像できずわかりません。ただ、下のURLを実際に動かしながら
変数の形などを見比べて、ご自身のものと比較すればわかると思います。
5 Kommentare
Kenta
am 16 Jan. 2020
「ちなみにImgNが読み込む画像の数です.」と参考にされたWEBに書いています。
また、「関数または変数'Imgn'が認識されません。」とありますし、Imgnを定義していないためエラーが出ているのではないでしょうか。たとえば40枚処理したいなら、Imgn=40;と宣言すればよいです。
また、上のコードを拝見する限り、1.jpg...などと命名されているようなので、以下のようにすればよいと思います。おそらく下をもとにそちらのデータに合わせたり、保存をしたりする必要があるかもしれませんが、適宜変更いただければと思います。
ImgN=40;
S=imread('1.jpg');
imtool(rgb2gray(S))
figure, imhist(S);
figure;
for i=2:ImgN
%Image Read
Imgfilename=strcat(num2str((i)),'.jpg');
S=imread(Imgfilename);
Sg=rgb2gray(S);
sb1=imbinarize(Sg,0.4);imshow(sb1)
end
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!