matlab web app serverにてfigureが使えない時の対処法

matlab web app serverにapp desingerを用いて作ったアプリをデプロイしました。
ただ、web app serverでは複数ウィンドウのアプリに対応していないということを知りました。
figureを用いてincropを使っていたりしますが、この場合はどうすればfigureを使わずに、incropが使えるのでしょうか。
rgb = imread(filename);
figure('Name','元画像','NumberTitle','off');
imshow(rgb);
[croppedImg,~] = imcrop(rgb);

 採用された回答

Kojiro Saito
Kojiro Saito 2022 年 12 月 19 日

3 投票

ドキュメントのimcrop(h)の方法が適用できます。imcropの入力引数にfigure、axes、uipanel、または image グラフィックス オブジェクトのハンドルが入れられるので、App Designerの座標軸(uiaxes)やパネル(uipanel)を指定すればFigureを使わずにクロップできます。
コールバックのサンプルです。ボタンクリック時に画像を選択し、1つ目の座標軸(app.UIAxes)に画像を表示し、imcropもこのapp.UIAxesを引数にして実行します。
function ButtonPushed(app, event)
[imgFile, imgPath] = uigetfile({'*.jpg;*.png'});
img = imread(fullfile(imgPath, imgFile));
imshow(img, 'Parent', app.UIAxes)
[croppedImg,~] = imcrop(app.UIAxes);
imshow(croppedImg, 'Parent', app.UIAxes2)
end
「共有」→「Webアプリ」で変換したCTFファイルをMATLAB Web App Serverに登録し、Webブラウザでアクセスした画面です。
imcropがuiaxesの中で実行されています。
右クリックして「イメージのトリミング」をクリックすると、クロップされた画像が右側のuiaxes (コードではapp.UIAxes2)に表示されています。

8 件のコメント

soh
soh 2022 年 12 月 19 日
編集済み: soh 2022 年 12 月 19 日
ご返信ありがとうございます
同様のコードで試してみたのですが、
[croppedImg,~] = imcrop(app.UIAxes);
の横に「関数 'imcrop' (タイプ'matlab.ui.control.UIAxes' の入力引数) が未定義です。」というエラーが表示されます。
下記に似た事例かと思われます。
Kojiro Saito
Kojiro Saito 2022 年 12 月 19 日
コールバックの中でimshow(img, 'Parent', app.UIAxes)のように座標軸(app.UIAxes)に対してimshowをしていますか?
soh
soh 2022 年 12 月 20 日
編集済み: soh 2022 年 12 月 20 日
はい、行っております。
使用しているmatlabは2022bです。
画像を添付させていただきます。
Kojiro Saito
Kojiro Saito 2022 年 12 月 20 日
私もR2022b (Update2)で実行していますが、MATLAB上でもWebアプリ上でもエラーなく実行できます。
サンプルのApp Designerアプリ(.mlapp)を添付しますので、こちらでは実行できるかご確認をお願いします。
soh
soh 2022 年 12 月 20 日
ありがとうございます。
いただいたものも同様にエラーが表示されます。
Kojiro Saito
Kojiro Saito 2022 年 12 月 20 日
@sohさん
同じアプリでもエラーが出るということは、uiaxesとは別の原因のようです。
imcropはImage Processing Toolboxの関数ですが、今のMATLABにこのToolboxは含まれていますでしょうか?
ver
でImage Processing Toolboxが表示されればインストールされていますが、表示されなければToolboxのインストールが必要になります。
soh
soh 2022 年 12 月 20 日
ありがとうございます。
無事解決いたしました。
原因は、toolboxが導入されていないのが問題でした。
お手数おかけいたしました。
次回以降は下記を参考に、一度toolboxの観点にて確認いたします。
https://jp.mathworks.com/matlabcentral/answers/326490-toolbox
Kojiro Saito
Kojiro Saito 2022 年 12 月 20 日
ご連絡ありがとうございます。無事に解決して良かったです。

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB Web App Server についてさらに検索

製品

リリース

R2022b

質問済み:

soh
2022 年 12 月 18 日

コメント済み:

2022 年 12 月 20 日

Community Treasure Hunt

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

Start Hunting!