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

1 view (last 30 days)
soh
soh on 18 Dec 2022
Commented: Kojiro Saito on 20 Dec 2022
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);

Accepted Answer

Kojiro Saito
Kojiro Saito on 19 Dec 2022
ドキュメントの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 Comments
soh
soh on 20 Dec 2022
ありがとうございます。
無事解決いたしました。
原因は、toolboxが導入されていないのが問題でした。
お手数おかけいたしました。
次回以降は下記を参考に、一度toolboxの観点にて確認いたします。
https://jp.mathworks.com/matlabcentral/answers/326490-toolbox
Kojiro Saito
Kojiro Saito on 20 Dec 2022
ご連絡ありがとうございます。無事に解決して良かったです。

Sign in to comment.

More Answers (0)

Categories

Find more on Web アプリ in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!