画像処理の入力について
6 次查看(过去 30 天)
显示 更早的评论
こちらの動画を参考にして自分の持っている画像の二値化を行ったら、エラーが出て、「入力がlogical(バイナリ)の場合は2次元でなければなりません。」といったメッセージが出たのですが、どういう意味かわかりません。
また、アプリから「イメージの領域解析」を使ってファイルからイメージの読み込みを行ったのですが、「入力イメージのクラスはlogicalでなければなりません。」とでました。この「入力はlogical」の意味がよく分かりません。
よろしくお願いいたします。
0 个评论
采纳的回答
Kenta
2020-1-15
I=imread('onion.png');
Ig=rgb2gray(I);
b=imbinarize(Ig);
こんにちは、logicalは、1か0かの値を持っていて、真が偽かなどの判別に使われることもあります。
詳しくは、下のURLをご参照ください。またネットで、「matlab logical」と検索すればたくさん出てくるので適宜ご参照ください
アプリの件ですが、上のように、2値化した画像 b を読み込めば、うまくアプリを使用できます。
あらかじめ、自分で前処理をしておき、それをアプリに読み込ませるイメージと思います。
はじめのエラーのほうは、あまり状況が想像できずわかりません。ただ、下のURLを実際に動かしながら
変数の形などを見比べて、ご自身のものと比較すればわかると思います。
5 个评论
Kenta
2020-1-16
「ちなみに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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 イメージ タイプの変換 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!