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

 Respuesta aceptada

Kojiro Saito
Kojiro Saito el 19 de Dic. de 2022

3 votos

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

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB Web App Server en Centro de ayuda y File Exchange.

Productos

Versión

R2022b

Preguntada:

soh
el 18 de Dic. de 2022

Comentada:

el 20 de Dic. de 2022

Community Treasure Hunt

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

Start Hunting!