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

matlabで、GUIアプリの作成を行っております。
ウェブカメラを搭載し、カメラから出力した画像を処理するプログラムを作成しました。
AppDesignerでは、正常に動作し、アプリケーションコンパイラーを用いて、アプリを作成しました。
しかし、作成したアプリケーションでは、カメラが全く動作しませんでした。
原因が全く分からないため、教えていただけますと幸いです。
よろしくおねがいします。

6 Comments

Kojiro Saito
Kojiro Saito on 14 Jul 2021
エラー内容が把握できないと原因解明が難しいので、アプリケーションコンパイラで「ランタイム追加設定」の「Windows の実行コマンド シェル (コンソール) を表示しない」のチェックを外してコンパイルしてみてください。カメラが動作しないときに何かエラーメッセージが出るかと思います。
Ibuki Takahashi
Ibuki Takahashi on 15 Jul 2021
ご返信ありがとうございました。
確認したところ、「関数または変数 'webcammex' が認識されません。」というエラーが出ていました。
webcam()という関数を用いて、ウェブカメラの設定を行いましたが、変更する必要があるということでしょうか。
もしお分かりでしたら、ご回答いただけますと幸いです。
よろしくお願いします。
Atsushi Ueno
Atsushi Ueno on 16 Jul 2021
Edited: Atsushi Ueno on 27 Jul 2021
(回答に移動しました)
Atsushi Ueno
Atsushi Ueno on 16 Jul 2021
上記Q&Aの状況は少し違いますが、要するにコンパイル時のインクルード環境を自動的に含めてくれるか否か違いがあるそうです。ツールボックスの場合は自動的に含めてくれるけど、サポートパッケージの場合は自分から含めるように指定しないとならない、のだそうです。
Kenta
Kenta on 17 Jul 2021
GUIを作成するときとはちがう状況なのですが、私の場合はこのような形でサポートパッケージを含める画面が出てくるのでそれに関連するかもしれません。何かに役立てば幸いです。
Ibuki Takahashi
Ibuki Takahashi on 27 Jul 2021
たくさんのコメントありがとうございました。とても有意義な回答のおかげで、問題を解決することができました。
できれば、一番参考になりました、こちらのコメントをベストアンサーにさせていただきたいと考えております。
よろしければ、回答のほうに移動していただいてもよろしいでしょうか。

Sign in to comment.

 Accepted Answer

Atsushi Ueno
Atsushi Ueno on 27 Jul 2021

1 vote

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)

Categories

Find more on スタンドアロン アプリケーション in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!