Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
竣 齊藤
竣 齊藤 il 30 Gen 2022
Commentato: 竣 齊藤 il 31 Gen 2022
英語表記の食品成分表示表を文字認識して,成分表示表内に含まれているアレルゲンを使用して,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 Commenti
Atsushi Ueno
Atsushi Ueno il 30 Gen 2022
メッセージ ダイアログ ボックスはどうでしょう。
竣 齊藤
竣 齊藤 il 31 Gen 2022
メッセージを使用したら,上手く出来ました.
ご教授して頂き,ありがとうございます.

Accedi per commentare.

Risposta accettata

Hernia Baby
Hernia Baby il 30 Gen 2022
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 Commento
竣 齊藤
竣 齊藤 il 31 Gen 2022
実行できました.
ご教授して頂き,ありがとうございます.

Accedi per commentare.

Più risposte (0)

Tag

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!