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);

 Réponse acceptée

Kojiro Saito
Kojiro Saito le 19 Déc 2022

3 votes

ドキュメントの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 commentaires

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Web App Server dans Centre d'aide et File Exchange

Produits

Version

R2022b

Community Treasure Hunt

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

Start Hunting!