when I use the slider in MATLAB gui to display images stored in a matrix an error is shown.

1 view (last 30 days)
Since am performing image processing techniques after storing the data in the matrix, its required that I use setappdata and getappdata to move the data around.However after I pass it to the final function , after about 9 frames the 10th frame gives an error.
the error being-
Error using images.internal.imageDisplayValidateParams>validateCData (line 115)
Multi-plane image inputs must be RGB images of size MxNx3.
Error in images.internal.imageDisplayValidateParams (line 27)
common_args.CData = validateCData(common_args.CData,image_type);
Error in images.internal.imageDisplayParseInputs (line 78)
common_args = images.internal.imageDisplayValidateParams(common_args);
Error in imshow (line 223)
[common_args,specific_args] = ...
Error in MAINTRIAL2>slider2_Callback (line 240)
imshow(P(:,:,C1),'parent',handles.axes6);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in MAINTRIAL2 (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)MAINTRIAL2('slider2_Callback',hObject,eventdata,guidata(hObject)),
Please do help

Accepted Answer

Walter Roberson
Walter Roberson on 17 May 2016
C1 = str2double( get(handles.edit2,'String') );
Or better yet, just index by C as it is already the numeric value.

More Answers (1)

Image Analyst
Image Analyst on 17 May 2016
What does this code show in the command window if you put it just before line 240:
whos P
whos C1
C1
What happens if you visit this link?
  2 Comments
Deandra  Dsouza
Deandra Dsouza on 17 May 2016
Edited: Walter Roberson on 17 May 2016
C=get(hObject,'Value');
% tr2=(tr1);
assignin('base','sliderVal',C);
set(handles.edit2,'String',num2str(round(C)));
C1=get(handles.edit2,('String'));
disp('C1')
disp(C1)
disp('C')
disp(C)
P=getappdata(0,'Segmented');
O=getappdata(0,'thresholding');
% figure();
% subplot(1,2,1);
imshow(P(:,:,C1),'parent',handles.axes6);
% subplot(1,2,2);
imshow(O(:,:,C1),'parent',handles.axes7);
guidata(hObject,handles);
Image Analyst
Image Analyst on 17 May 2016
That's not the code I gave you. There is no whos and I didn't say to use disp(). Anyway, try this:
C1 = str2double(handles.edit2.String);
I recommend you don't use assignin() and pick more descriptive names than C, C1, P, and (worst of all!) O.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!