フィルターのクリア

言葉のみを別のウィンドウに表示する

1 回表示 (過去 30 日間)
竣 齊藤
竣 齊藤 2022 年 1 月 30 日
コメント済み: 竣 齊藤 2022 年 1 月 31 日
英語表記の食品成分表示表を文字認識して,成分表示表内に含まれているアレルゲンを使用して,3択の日本語を選ぶクイズを作成しています.
上記の画像が,成分表示表の画像です.
[file,path,indx] = uigetfile({'*.*'});
photo = fullfile(path,file);
img = imread(photo);
results = ocr(img);
Ninshikimoji = lower(results.Words);
Ninshikiwaku = results.WordBoundingBoxes;
Jisho = readtable('allergy1.xlsx','ReadRowNames',true);
word = categorical(Jisho.word);
Mininshiki = blanks(0);
m = 0;
for n = 1:size(Ninshikimoji,1)
if any(word == Ninshikimoji{n})
Shoukai = Jisho{Ninshikimoji{n},:};
% 追加箇所:ここから
img = insertObjectAnnotation(img,'rectangle',Ninshikiwaku(n,:),Shoukai{:},'font','Yu Gothic Bold');
%img = insertText(img,Ninshikiwaku(n,[1 2]),Shoukai{:},'font','fonts-japanese-gothic','AnchorPoint','LeftBottom');
x = Ninshikiwaku(n,1); y = Ninshikiwaku(n,2); w = Ninshikiwaku(n,3); h = Ninshikiwaku(n,4);
logo = imresize(imread([Shoukai{:} '.png']),0.3);
img(y:(y+size(logo,1)-1),(x+w):(x+w+size(logo,2)-1),:) = logo;
% 追加箇所:ここまで
m = m+1;
tango{m} = Ninshikimoji{n};
moji{m} = Shoukai;
else
Mininshiki = [Mininshiki ' ' Ninshikimoji{n}];
end
end
n = 1;
a = cell(3,1);
while n < 4
a{n} = randsample(m,1);
if n == 3
if not(a{2}==a{3} & a{1}==a{3})
break
else
n;
end
elseif n == 1
n = n+1;
elseif n == 2
if not(a{1}==a{2})
n = n+1;
else
n;
end
end
end
b = a{1};
c = a{2};
d = a{3};
n = randsample(3,1);
if n == 1
f = a{n};
elseif n == 2
f = a{n};
elseif n == 3
f = a{n};
end
answer = questdlg(tango{f}, ...
'食物アレルゲンの英単語', ...
moji{b},moji{c},moji{d},moji{f});
g = moji{f};
if answer{1,1} == g{1,1}
disp(['せいかい!'])
elseif not(answer{1,1} == g{1,1})
disp(['はずれ・・・。せいかいは、',g{1,1}])
end
今回ご教授して頂きたい点は,「せいかい」や「はずれ・・・。せいかいは、」などの最後の言葉をコマンドウィンドウではなく,別のウィンドウを開いて表示させたいと考えています.
ご教授の程,よろしくお願いいたします.
  2 件のコメント
Atsushi Ueno
Atsushi Ueno 2022 年 1 月 30 日
メッセージ ダイアログ ボックスはどうでしょう。
竣 齊藤
竣 齊藤 2022 年 1 月 31 日
メッセージを使用したら,上手く出来ました.
ご教授して頂き,ありがとうございます.

サインインしてコメントする。

採用された回答

Hernia Baby
Hernia Baby 2022 年 1 月 30 日
msgbox で解決できます。
例を示します。以下コピペでお願いします。
clc,clear
A = ["正解!";"間違い!"];
% 正解か間違いかランダムで表記
ii = randi(2,1);
% 間違いの場合は以下の分加える
answer = "ブドウ";
if ii == 2
A(ii) = A(ii) + sprintf("\n正解は%sでした",answer);
end
f = msgbox(sprintf('%s',A(ii)));
  1 件のコメント
竣 齊藤
竣 齊藤 2022 年 1 月 31 日
実行できました.
ご教授して頂き,ありがとうございます.

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品


リリース

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!