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

 采纳的回答

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

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB Web App Server 的更多信息

产品

版本

R2022b

Community Treasure Hunt

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

Start Hunting!