MATLAB Answers

shin hsu
0

How to return the state of preivew camera?

Asked by shin hsu
on 13 Jun 2019
Latest activity Commented on by shin hsu
on 13 Jun 2019
thank you for your help in advance.
Is there something like fopen for gige camera "Preview(g)"?
here is what the code looks like.
Camlist = gigecamlist;
IP = string(Camlist{1,3});
g= gigecam(IP,'PixelFormat','mono8');
g_Res = [g.Width g.Height];
%----------------lines to created figure with tabs-------------------------------------------------------
streamingHandle = uicontrol(tab_ini,'Style','PushButton','String', 'Streaming','Position',[135 10 80 20],'Callback', {@streaming,tab_ini,g_Res,g});
%------------------------------------------------------ callback funtion for push button
function streaming(object_handle,event, tab_ini, g_Res, g)
%% How can i return a value from 'preview(g)' to condition "if"
% if Preview(g) ==1; is opened
% closePreview(g);
% end
dock_tab = axes(tab_ini,'units','pixels','Position',[35,40,g_Res(1),g_Res(2)],'box','on');
nBands = 1; % grey scale
I = image(zeros(g_Res(2),g_Res(1), nBands),'Parent',dock_tab);
preview(g, I);

  0 Comments

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 13 Jun 2019
Edited by Walter Roberson
on 13 Jun 2019
 Accepted Answer

%avoid warnings about struct() preventing hiding implementation details
old_warning_state = warning('off', 'MATLAB:structOnObject');
gs = struct(g);
gsw = struct(gs.webcamImpl);
gscpc = struct(gsw.CamPreviewController);
warning(old_warning_state);
if gscpc.IsPreviewing
closePreview(g)
end
Note: you cannot do this directly: several of the properties are hidden properties.

  1 Comment

The gigecam has the 'CamPreviewController' so it works preferectly.
%avoid warnings about struct() preventing hiding implementation details
old_warning_state = warning('off', 'MATLAB:structOnObject');
gs = struct(g);
%gsw = struct(gs.webcamImpl);
gscpc = struct(gs.CamPreviewController);
warning(old_warning_state);
if gscpc.IsPreviewing
closePreview(g)
end
thank you Walter for you help. I won't be able to figure this out myself.
Sincerely

Sign in to comment.