Main Content

앱의 파일 선택 대화 상자와 알림 대화 상자를 사용하여 이미지 불러오기

이 앱은 파일 선택 대화 상자와 알림 대화 상자를 구성하고 사용하는 방법을 보여줍니다. 이 앱에서는 앱 사용자가 파일 선택 대화 상자를 통해 파일 시스템에서 이미지를 선택할 수 있습니다. 잘못된 파일 형식의 이미지를 선택하면 알림 대화 상자가 알려 줍니다. 이 앱은 선택한 이미지와 더불어 이미지를 구성하는 빨간색, 녹색, 파란색 픽셀에 대한 3개의 히스토그램을 표시합니다.

이 예제에서는 다음과 같은 앱 작성 작업을 수행하는 방법을 보여줍니다.

  • 이미지를 읽고 표시합니다.

  • uigetfile 함수를 사용하여 사용자의 파일 시스템을 검색합니다.

  • uialert 함수를 사용하여 유효하지 않은 입력값(이 경우에는 지원되지 않는 이미지 파일)에 대한 앱 내 알림을 표시합니다.

  • 히스토그램을 사용하여 이미지 데이터를 플로팅합니다.

파일 선택 대화 상자를 사용하여 이미지 불러오기

앱 사용자가 사용자 지정 이미지를 선택할 수 있는 파일 선택 대화 상자를 표시하도록 앱을 프로그래밍합니다. 앱을 실행하고 Load Custom Image 버튼을 클릭하면 파일 선택 대화 상자가 나타납니다.

먼저 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);
  • 별도의 좌표축에 세 개의 히스토그램을 플로팅하여 빨간색, 녹색, 파란색 픽셀의 농도를 표시합니다.

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를 사용하여 알림 대화 상자를 만드십시오. 예를 들어, 사용자가 지원되지 않는 파일 형식의 이미지를 선택하는 경우 알림 대화 상자를 표시할 수 있습니다. 지원되지 않는 파일 형식의 예외를 처리하려면 updateImage 함수에서 try/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

앱에서 지원되지 않는 사용자 지정 이미지를 불러오려고 하면 알림 대화 상자가 나타납니다.

참고 항목

함수

속성

관련 항목