MATLAB Answers

GUIアプリの中で、ウェブカメラの不具合について

1 view (last 30 days)
matlabで、GUIアプリの作成を行っております。
ウェブカメラを搭載し、カメラから出力した画像を処理するプログラムを作成しました。
AppDesignerでは、正常に動作し、アプリケーションコンパイラーを用いて、アプリを作成しました。
しかし、作成したアプリケーションでは、カメラが全く動作しませんでした。
原因が全く分からないため、教えていただけますと幸いです。
よろしくおねがいします。
  6 Comments
Ibuki Takahashi
Ibuki Takahashi on 27 Jul 2021
たくさんのコメントありがとうございました。とても有意義な回答のおかげで、問題を解決することができました。
できれば、一番参考になりました、こちらのコメントをベストアンサーにさせていただきたいと考えております。
よろしければ、回答のほうに移動していただいてもよろしいでしょうか。

Sign in to comment.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 27 Jul 2021
Error when running compiled application: Undefined function ’webcammex' - MATLAB Answers - MATLAB Central (mathworks.com): エラーメッセージで検索して見つかった類似の質問と、神回答者イメージアナリスト氏の回答があったので下記に回答の訳を示します
@Image Analyst's Answer in Japanese
今日この問題が発生したので、その解決方法を紹介します。 GUIアプリが
webcamlist
を実行した時点で「関数または変数 'webcammex' が認識されません。」というエラーが発生しました。通常、開発環境でこのコマンドを実行すると、次のような結果になります。
>> webcamlist
ans =
1×1 cell array
{'Integrated Webcam'}
つまり開発環境ではWebカメラが動作しましたが、コンパイルしたスタンドアロンのWindows実行ファイルでは動作しませんでした。必要なサポートパッケージをインストールしていたにもかかわらずです。では、この問題を解決する方法を説明します。
まず、ツールリボンの「ホーム」タブから「アドオン\アドオンの入手」を選択して、サポートパッケージがインストールされていることを確認します。
「MATLAB Support Package for USB Webcams」をインストールします。
さて、ここで予想外のことが起こりました(技術サポートに電話しなければならなかった理由でもあります)。 ツールボックス関数とは異なり、サポートパッケージ関数は、コンパイル時に自動的に検出され、関数に組み込まれることはありません。 mcc関数/コマンドの'-a'オプションで特別に追加する必要があります。 というわけで、基本的には次のような方法で動作するようになりました(技術サポートと20分ほどいろいろ試した後やっと)
mFileName = 'my_webcam_app.m'; % か何か。貴方のm-file名に合わせて変更してください
outputFolder = 'C:\My MATLAB Executables'; % コンパイルした"my_webcam_app.exe"の在り処にしてください
fprintf('%s 現在 %s アプリのコンパイル開始...\n', datestr(now), mFileName);
tic;
% コンパイルの準備が整いました
% その前に、下記のR2020aを、ご使用のリリース名に合わせて変更してください
mcc('-m', mFileName, '-d', outputFolder, '-a', 'C:\ProgramData\MATLAB\SupportPackages\R2020a\toolbox\matlab\webcam\supportpackages');
% コンパイル完了。 完了したことと、コンパイルにかかった時間を開発者に伝えます
elapsedSeconds = toc;
minutes = int32(floor(elapsedSeconds / 60));
seconds = elapsedSeconds - 60 * double(minutes);
message = sprintf('%s 現在 %s アプリのコンパイルが完了しました。%d 分と %.1f 秒掛かりました。\n', datestr(now), mFileName, minutes, seconds);
fprintf('%s\n', message);
msgboxw(message);
詳細については、技術サポートから入手したドキュメントのリンクを参照してください。
これは私が言及した資料で、コンパイルされたアプリケーションにサポートパッケージを含める方法について説明しています。
これで、コンパイル済のWebカメラアプリケーションを動作させるのに役立つことを願っています。 役に立った場合は、私の回答の一番上にある投票ボタンをクリックしてください。
  1 Comment
Atsushi Ueno
Atsushi Ueno on 27 Jul 2021
本回答は類似質問の回答の翻訳です。従って「私の回答の一番上にある投票ボタンをクリックしてください」とは本回答の事ではなく、下記リンク先の回答の事です。投票したげてくださいね。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!