Matlab小程式:圖片選取程式
練習使用Matlab的對話框,並與有的沒的指令結合順便紀錄用法。
展示圖
程式碼
程式碼經Matlab 2007a, 2007b測試無誤。
展示圖
程式碼
clc; clear;
% 取得圖片所在的目錄
images_dir = uigetdir('.','Choose a directory for images');
if images_dir == 0, return; end
% 檢查目錄存在否
chk_code = exist(images_dir,'dir');
if chk_code ~= 7
msg = sprintf('''%s''not exit or not a directory\n', in_dir);
errordlg(msg, 'Are you sure?');
return;
end
% 搜尋檔案並統計
file_list = dir(fullfile(images_dir, '*.jpg'));
file_list_num = size(file_list);
if file_list_num(1) <= 0
msg = sprintf('Can not find any JPEG image in this directory.\n');
msgbox(msg, 'Are you kidding?');
return;
end
msg = sprintf('Total JPEG image number:%d\n', file_list_num(1));
uiwait(msgbox(msg, 'Scanning images finished'));
% 列出檔案名稱給使用者選擇
file_list_names = {file_list.name};
pushbtn = 1;
while pushbtn == 1
[selindx,pushbtn] = listdlg('SelectionMode', 'single',...
'PromptString', 'Select image to show:',...
'Name', 'Image Selector',...
'OKString', 'Show image',...
'CancelString', 'Close',...
'ListString', file_list_names);
if pushbtn == 1
figure(1);
imshow(imread(fullfile(images_dir, file_list(selindx).name)));
uiwait(1);
end
end
程式碼經Matlab 2007a, 2007b測試無誤。
留言