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일
ありがとうございます。
いただいたものも同様にエラーが表示されます。
@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 Exchange에서 MATLAB 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!