質問: if文のエラーについて if文を使って,顔検出したときに"おはよう”と,口検出したときに"こんにちは"と表示させたいです. 以下のコードでエラーが生じました. エラーは”コード8行目のbboxbodyが変数として認識されない”という内容でした. 補足:顔検出した際の"ohayou"はコマンドウィンドウに表示されました. わかる方がいらっしゃいましたら,ご教授ください. facedetector=vision.cascadeobjectdetector; bodydetector=vision.cascadeobjectdetector('mouth'); bodydetector.minsize=[60 60]; bodydetector.meregethreshold=10; i=imread(写真の名前); if(bboxes==facedetector(i)) disp("ohayou") elseif(bboxbody==bodydetector(i)) disp("konnitiwa") end
回答: bboxesやbboxbodyはそれぞれfacedetectorとbodydetectorの出力だと思われますので、以下のようにしてみたらいかがでしょうか。上記のコードでは顔検出と口検出をelseifで分岐させていますが、排他的では無いと思いますので、ifの入れ子にするかif end、if endで別の分岐にしてみました。 facedetector=vision.cascadeobjectdetector; bodydetector=vision.cascadeobjectdetector('mouth'); bodydetector.minsize=[60 60]; bodydetector.mergethreshold=10; i = imread('visionteam.jpg'); %i=imread('写真の名前.jpg'); bboxes = facedetector(i); bboxbody = bodydetector(i); if ~isempty(bboxes) disp("ohayou") end if ~isempty(bboxbody) disp("konnitiwa") end % または if ~isempty(bboxes) disp("ohayou") if ~isempty(bboxbody) disp("konnitiwa") end end