필터 지우기
필터 지우기

How to proceed with image processing in GUI?

조회 수: 1 (최근 30일)
Gee Cheng Mun
Gee Cheng Mun 2016년 1월 14일
댓글: Image Analyst 2016년 1월 15일
I have set up a GUI whereby the first push button(Load a MRI image) is to allow the user to select any image. I would like to proceed with image processing using the selected image from the first pushbutton. I have other pushbuttons like 'image enhancement', 'roi detection'. How can I proceed with image processing using the selected image from the first pushbutton?

답변 (3개)

Walter Roberson
Walter Roberson 2016년 1월 14일
  댓글 수: 1
Gee Cheng Mun
Gee Cheng Mun 2016년 1월 14일
편집: Walter Roberson 2016년 1월 14일
I tried but I don't understand. I can't save the image and process it under the second pushbutton.
% --- Executes on button press in load_mri.
function load_mri_Callback(hObject, eventdata, handles)
path='G:\FYP2\';
filter='*.png;*.jpg;*.tif;*.png;*.gif';'All Image Files';
[selectedFile, selectedPath]=uigetfile(fullfile(path, filter));
handles.img=imread([selectedPath, selectedFile]);
axes(handles.axes2);
image(handles.img);
setappdata(load_mri, 'Load MRI Image'); %save the application data
% --- Executes on button press in enhancement.
function enhanchObjectement_Callback(hObject, eventdata, handles)
yourVariable = getappdata(load_mri, 'Load MRI Image')
mri=imread(yourVariable);
gray=rgb2gray(mri);
I=imadjust(gray);
imshow(I);

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2016년 1월 14일
Below I show proper use of both handles and setappdata
% --- Executes on button press in load_mri.
function load_mri_Callback(hObject, eventdata, handles)
path='G:\FYP2\';
filter='*.png;*.jpg;*.tif;*.png;*.gif';'All Image Files';
[selectedFile, selectedPath]=uigetfile(fullfile(path, filter));
[~, image_name, ~] = basename(selectedFile);
image_file = fullfile(selectedPath, selectedFile);
image_data = imread(image_name);
axes(handles.axes2);
image(image_data);
%image name is small, you can afford to store it in handles
handles.image_name = image_name;
handles.image_file = image_file;
guidata(hObject, handles);
%image content could be big, do not store it in handles
myfig = ancestor(hObject, 'figure');
setappdata(myfig, 'Loaded_MRI_Image', image_data); %save the application data
% --- Executes on button press in enhancement.
function enhanchObjectement_Callback(hObject, eventdata, handles)
myfig = ancestor(hObject, 'figure');
mri = getappdata(myfig, 'Loaded_MRI_Image'); %it is already the image
image_name = handles.image_name;
gray = rgb2gray(mri);
I = imadjust(gray);
imshow(I);
title( sprintf('Contrast adjusted "%s"', image_name) );
  댓글 수: 4
Gee Cheng Mun
Gee Cheng Mun 2016년 1월 15일
I am now able to load the image but not able to process it under enhancement, using the same loaded image.
Error using feval Undefined function 'enhancement_Callback' for input arguments of type 'struct'.
Error in gui_mainfcn (line 95) feval(varargin{:});
Error in Finaldraft (line 42) gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Finaldraft('enhancement_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback
myfig = ancestor(hObject, 'figure');
mri = getappdata(myfig, 'Load_MRI_Image', image_data); %it is already the image
gray = rgb2gray(mri);
I = imadjust(gray);
imshow(I);
title( sprintf('Contrast adjusted "%s"', image_name) );
Image Analyst
Image Analyst 2016년 1월 15일
enhancement_Callback is not spelled the same as enhanchObjectement_Callback, so which is it? Which is the right name?

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2016년 1월 14일
You might try MAGIC: http://www.mathworks.com/matlabcentral/fileexchange/24224-magic-matlab-generic-imaging-component All that stuff is already worked out for you. You just put your analysis code into the function AnalyzeSingleImage. It handles all the rest from listing image names in a listbox to displaying them to batch processing them to sending results to Excel.

카테고리

Help CenterFile Exchange에서 Display Image에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by