5.0

5.0 | 1 rating Rate this file 57 Downloads (last 30 days) File Size: 26.2 KB File ID: #38997
image thumbnail

GINPUT on GUI (Keeping toolbar features on) & Use of custom pointers

by

 

12 Nov 2012 (Updated )

GUI Framework to use GINPUT (keeping all toolbar features on) + Custom pointers for plots and more.

| Watch this File

File Information
Description

This is basically a GUI framework, inviting users to tweak it to their needs. It comes with the following salient features:

1. Shows different Pointers when mouse is hovered over one or more than one plots. The number of plots used in this framework is two, but it can be easily extended to more numbers if needed.

2. Point clicking on the plots can be associated to custom functions and thus they can be used to act as region selection, image data finding, image coordinate finding, etc. In one of my previous projects I extended this GUI framework to make it able to display multiple rectangular boxes on a single plot, change the Pointer whenever mouse was hovered over one of these boxes, click one of these and display the data from the selected rectangular box onto another plot. So, that’s possible too, if anyone is interested.

3. X and Y coordinates of the points clicked are obtainable as GUI output. Thus, it can also be used to act as GINPUT, while keeping the commonly used figure toolbar features on and letting user activate any GUI component. When GINPUT is called, user needs to complete the point selection before proceeding with any other instruction. During the point selection with GINPUT, the GUI toolbar features like Zoom-in, Zoom-out, Pan and few others get disabled. This limitation doesn’t exist in this code, as inherently it simulates GINPUT for point selection only, but lets user proceed with the next instruction or other functions. This GINPUT-style point selection is also continuous, meaning user won’t need to activate it with any GUI component, but of course its start and stop is controllable. The figure toolbar features that are available with this GUI are - New Figure, Open File, Print Figure, Zoom In, Zoom Out, Pan, Rotate 3D, Data Cursor, Insert Colorbar & Insert Legend.

4.With minor tweaking, it’s possible to modify this framework to make it act as IMPIXEL, but use commonly used figure toolbar features as well, unlike in IMPIXEL. This can be found on MATLAB Central too.

Feedback / Bugs / How-this-helped / How-this-sucked / How-this-could_be_improved / Anything about it are MOST welcome. For contacting me, please click on my name above that will direct you to my homepage and on it, click on "Contact Author" link.

Acknowledgements

This file inspired Impixel With Figure Tools.

Required Products Image Processing Toolbox
MATLAB release MATLAB 7.13 (R2011b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (4)
02 Feb 2013 Divakar Roy

Harold -

Maybe you can start with my GUI and add your GUI stuffs on top of it.

Otherwise if you want to add my GUI stuffs on top of yours, you need to make the changes listed below and it is assumed that you are starting off with a blank GUI that automatically creates functions like OpeningFcn, etc. on your behalf.
Changes:
1. Edit these two functions to include my stuffs from – OpeningFcn and OutputFcn.
2. Add these functions that are needed for OutputFcn - detect_mouse_hover, detect_mouse_press_print_plus, detect_mouse_press_do_nothing, estimate_new_position. The toolbar functions can be similarly edited, if needed.

Hope this helps!

02 Feb 2013 Harold

Would really like to use this function in my own function but I am having trouble figuring out what I need to keep. I already have my GUI made in GUIDE. So basically I need all the functionality of what your code has but for my GUI. I also have only one figure.

07 Dec 2012 Divakar Roy

Nicolas,

Yes, that should be possible. You are needed to trigger an infinite loop inside function - detect_mouse_press_print_plus or make a new one similar to it but with an infinite loop that plots the marking symbols ('+' in the code) continuously.

Then add WindowButtonUpFcn in the function - detect_mouse_hover, so that the infinite loop could be broken when user releases the pressed mouse button.

To accomplish all this, you most probably would require a flag.

Hope this helps.

22 Nov 2012 Nicolas Jaccard

Very interesting tool; would there be a way to enable holding down the mouse button and dragging around to effectively paint on the image?

Updates
12 Nov 2012

Minor revision in the documentation.

Contact us