Buttondownfcn callback on live video data (preview)

Hello,
I am currently trying to initiate a callback routine when the user presses on an axis that contains a live video stream, i.e.
frame = getsnapshot(handles.vidObj);
axes = imshow(frame, 'Parent', handles.axes_stream);
preview(handles.vidObj, axes); % assign vidObj to axes
However, I have not yet been able to achieve this despite looking at various discussions. I presume it is because the displayed video is stopping my mouse button being registered and the callback routine is not working.
Any help would be appreciated.

1 commentaire

Sam
Sam le 18 Nov 2012
Anyone? I'm starting to think that maybe it's not possible.

Réponses (1)

Sean de Wolski
Sean de Wolski le 16 Nov 2012

0 votes

I am guessing that preview is nullifying your ButtonDownFcn (just an educated guess though). Thus you would need to reinstate your ButtonDownFcn on the axes after calling preview.

8 commentaires

Hello, thanks for your input. I have already tried this but to no avail, i.e.
set(handles.axes_stream,'buttondownfcn',{@axes_Callback, handles});
This is set after:
preview(handles.vidObj, axes); % assign vidObj to axes
Is the axes' 'Hittest' turned off?
You may want to check this.
get(ax,'hittest');
And look in the documentation for axes properties for a more thorough explanation of why.
Hello,
I have set hittest off:
set(handles.axes_stream,'Hittest','off');
And have checked that it is off using breakpoints in the program. I still cannot get the callback function to initiate when clicking on the axes.
Well I would guess that is the issue - you want the 'HitTest' to be on :).
If the axes can't become the current object, it's ButtonDownFcn will never fire...
Sam
Sam le 22 Nov 2012
Hello,
I have tried this but the ButtonDownFcn is still not firing. :'( I guess I will have to rethink my strategy. Thanks for your input guys!
Sam, if your license's SMS is current, please contact Technical Support.
Image Analyst
Image Analyst le 26 Nov 2012
Modifié(e) : Image Analyst le 26 Nov 2012
I haven't tried clicking on the live video axes. Would clicking on a button be an acceptable workaround? Because I know I can click on buttons while I have a live image in an axes, and it does the callback operations just fine.
Sam
Sam le 26 Nov 2012
I will contact Technical Support and see what they have to say and report back. For now, I will use buttons to provide the necessary functionality.
Cheers everyone!

Cette question est clôturée.

Question posée :

Sam
le 16 Nov 2012

Clôturé :

le 20 Août 2021

Community Treasure Hunt

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

Start Hunting!

Translated by