メインコンテンツ

アプリのファイル選択と警告のダイアログ ボックスを使用したイメージの読み込み

このアプリでは、ファイル選択と警告のダイアログ ボックスを構成および使用する方法を示します。このアプリでは、ファイル選択ダイアログ ボックスを使用して、アプリ ユーザーがファイル システムからイメージを選択できるようにします。無効なファイル タイプのイメージを選択すると、警告ダイアログ ボックスで警告が出されます。アプリでは、選択したイメージと、イメージの赤、緑、青のピクセルの構成を示す 3 つのヒストグラムが表示されます。

この例では、次のアプリ作成タスクを示します。

  • イメージを読み取って表示する。

  • uigetfile関数を使用してユーザー ファイル システムを参照する。

  • 無効な入力 (この場合はサポートされていないイメージ ファイル) に対して、uialert関数を使用してアプリ内警告を表示する。

  • ヒストグラムを使用してイメージ データをプロットする。

Image Histograms app. The app contains an image, a drop-down list to select a new image, a Load Custom Image button, and three histograms of the red, green, and blue pixel intensities.

ファイル選択ダイアログ ボックスを使用したイメージの読み込み

アプリ ユーザーがカスタム イメージを選択するファイル選択ダイアログ ボックスを表示するようにアプリをプログラムします。アプリを実行し、[Load Custom Image] ボタンをクリックすると、ファイル選択ダイアログ ボックスが表示されます。

File selection dialog box with some image files

まず、[Load Custom Image] ボタン用の ButtonPushedFcn コールバックを作成します。コールバック関数 LoadCustomImageButtonPushed で、有効な入力ファイル タイプを指定し、関数 uigetfile を使用してダイアログ ボックスを作成します。

filterspec = {'*.jpg;*.tif;*.png;*.gif','All Image Files'};
[file,path] = uigetfile(filterspec);

関数 uigetfile の出力では、読み込まれたイメージのファイル名とパスが提供されます。絶対パス名を取得します。

imagefile = [path file];

この絶対パス名を使用してイメージを表示し、イメージの赤、緑、および青のピクセルのヒストグラムをプロットします。次のタスクを実行する updateImage という名前の新しい補助関数を作成します。

  • 絶対パス名を使用してイメージを読み取って表示する。

im = imread(imagefile);
imagesc(app.ImageAxes,im);
  • 3 つのヒストグラムを別々の座標軸にプロットして、赤、緑、および青のピクセル強度を表示します。

histr = histogram(app.RedAxes,im(:,:,1),"FaceColor",[1 0 0],"EdgeColor","none");
histg = histogram(app.GreenAxes,im(:,:,2),"FaceColor",[0 1 0],"EdgeColor","none");
histb = histogram(app.BlueAxes,im(:,:,3),"FaceColor",[0 0 1],"EdgeColor","none");

補助関数の作成方法の詳細については、補助関数によるアプリでのコードの再利用を参照してください。

エラー メッセージのアプリ内警告の表示

アプリ ユーザーが無効なアクションを実行したときにアプリ内エラー メッセージを表示するには、uialert を使用して警告ダイアログ ボックスを作成します。たとえば、ユーザーがサポートされていないファイル タイプのイメージを選択したときに警告ダイアログ ボックスを表示します。関数 updateImagetry/catch ステートメントを使用して、サポートされないファイル タイプの例外を処理します。まず、関数 imread でイメージ ファイルを読み取ります。ファイルの読み取り時にエラーが発生した場合に、uialert を使用してエラー メッセージを表示します。UI Figure を最初の引数として渡し、その後に MATLAB エラー テキストとして指定されたメッセージ テキストと警告タイトルを渡します。

try
    im = imread(imagefile);
catch ME
    % If problem reading image, display error message
    uialert(app.UIFigure,ME.message,"Image Error");
    return;
end

アプリがサポートしていないカスタム イメージを読み込もうとすると、警告ダイアログ ボックスが表示されます。

Image Histograms app with an alert dialog box. The title of the dialog box is "Image Error" and the text is "Unable to determine the file format".

参考

関数

プロパティ

トピック