function varargout = cardreader(varargin)
% CARDREADER Application M-file for cardreader.fig
% FIG = CARDREADER launch cardreader GUI.
% CARDREADER('callback_name', ...) invoke the named callback.
% Last Modified by GUIDE v2.0 27-Aug-2002 16:02:11
if nargin == 0 % LAUNCH GUI
fig = openfig(mfilename,'reuse');
% Use system color scheme for figure:
set(fig,'Color',get(0,'defaultUicontrolBackgroundColor'));
% Generate a structure of handles to pass to callbacks, and store it.
handles = guihandles(fig);
guidata(fig, handles);
if nargout > 0
varargout{1} = fig;
end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
try
if (nargout)
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
else
feval(varargin{:}); % FEVAL switchyard
end
catch
disp(lasterr);
end
end
%| ABOUT CALLBACKS:
%| GUIDE automatically appends subfunction prototypes to this file, and
%| sets objects' callback properties to call them through the FEVAL
%| switchyard above. This comment describes that mechanism.
%|
%| Each callback subfunction declaration has the following form:
%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)
%|
%| The subfunction name is composed using the object's Tag and the
%| callback type separated by '_', e.g. 'slider2_Callback',
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
%|
%| H is the callback object's handle (obtained using GCBO).
%|
%| EVENTDATA is empty, but reserved for future use.
%|
%| HANDLES is a structure containing handles of components in GUI using
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
%| structure is created at GUI startup using GUIHANDLES and stored in
%| the figure's application data using GUIDATA. A copy of the structure
%| is passed to each callback. You can store additional information in
%| this structure at GUI startup, and you can change the structure
%| during callbacks. Call guidata(h, handles) after changing your
%| copy to replace the stored original so that subsequent callbacks see
%| the updates. Type "help guihandles" and "help guidata" for more
%| information.
%|
%| VARARGIN contains any extra arguments you have passed to the
%| callback. Specify the extra arguments by editing the callback
%| property in the inspector. By default, GUIDE sets the property to:
%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))
%| Add any extra arguments after the last argument, before the final
%| closing parenthesis.
% --------------------------------------------------------------------
function varargout = pbLoad_Callback(h, eventdata, handles, varargin)
[filename,pathname]=uigetfile('*.mat');
load([pathname filename]);
imshow(S)
bw = rgb2gray(S);
level = graythresh(bw);
bw = im2bw(bw,level);
bw2=~bw;
handles.bw2 = bw2;
guidata(h,handles);
% --------------------------------------------------------------------
function varargout = pbMatch_Callback(h, eventdata, handles, varargin)
bw2 = handles.bw2;
bw=bw2(1:20,1:15);
for cnt = 1:13
%str = strcat('load(''t',num2str(cnt),'.mat'');');
%eval(str);
load(sprintf('t%d.mat',cnt))
a = rgb2gray(a);
level = graythresh(a);
a = im2bw(a,level);
a=~a;
C = real(ifft2(fft2(bw) .* fft2(rot90(a,2),20,15)));
temp(cnt) = max(C(:));
end
[value,I] = max(temp);
bw=bw2(19:30,2:13);
for cnt = 1:4
%str = strcat('load(''p',num2str(cnt),'.mat'');');
%eval(str);
load(sprintf('p%d.mat',cnt))
a = rgb2gray(a);
level = graythresh(a);
a = im2bw(a,level);
a=~a;
C = real(ifft2(fft2(bw) .* fft2(rot90(a,2),12,12)));
temp2(cnt) = max(C(:));
end
[value,I2] = max(temp2);
str1 = strvcat('A','2','3','4','5','6','7','8','9','10','J','Q','K');
str2 = strvcat('Club','Spade','Heart','Diamond');
str = strcat(str1(I,:),'-->',str2(I2,:));
set(handles.edit1,'String',str);
% --------------------------------------------------------------------
function varargout = edit1_Callback(h, eventdata, handles, varargin)