LineProfileTool Class Reference

#include <LineProfileTool.h>

Inheritance diagram for LineProfileTool:

PlotToolInterface

List of all members.


Detailed Description

Plot tool for calculating intensity profiles of image markers along a line.

It is assumed that on the parent Graph an ImageMarker is selected. During initialization, a pointer to this marker is stored and the selection is removed. The LineProfileTool adds itself as a full-sized child widget to the Graph's canvas, allowing for fast redraws while selection of the line is in progress. Once the line is selected (mouse button is released), the profile is calculate and displayed, a new LineMarker denoting the selected profile line is added to the Graph and the LineProfileTool deletes itself by setting the Graph's active tool to NULL.

Future Plans

Actually, image analysis doesn't fit terribly well into the Graph framework. A cleaner approach would be to add a new MyWidget subclass (Image?) that operates on a single image, providing things like line profiles, intensity tables and measuring points on scanned graphs (simple g3data-like functionality). There could be facilities for making an Image from an ImageMarker and vice versa (if that's really needed). [ postponed until after the redesign of project handling ]

Signals

void statusText (const QString &)

Public Member Functions

void calculateLineProfile (const QPoint &start, const QPoint &end)
 LineProfileTool (Graph *graph, ApplicationWindow *app, int average_pixels)
 Standard constructor.
virtual int rtti () const

Protected Member Functions

void addLineMarker (const QPoint &start, const QPoint &end)
int averageImagePixel (const QImage &image, int px, int py, bool moreHorizontal)
virtual void mouseMoveEvent (QMouseEvent *e)
 Mouse movements need to be monitored for updating the line during operation.
virtual void mousePressEvent (QMouseEvent *e)
 Pressing the left mouse button starts line selection.
virtual void mouseReleaseEvent (QMouseEvent *e)
 Mouse releases end line selection and cause the profile to be displayed.
virtual void paintEvent (QPaintEvent *e)
 Draw line during operation (replaced by a LineMarker at the end).

Private Attributes

ApplicationWindowd_app
int d_average_pixels
 Number of image pixels over which to average.
QPoint d_op_dp
 Difference between current and start position during operation.
QPoint d_op_start
 Mouse position where an operation started.
ImageMarkerd_target
 The image marker to operate on.

Constructor & Destructor Documentation

LineProfileTool::LineProfileTool ( Graph graph,
ApplicationWindow app,
int  average_pixels 
)

Standard constructor.


Member Function Documentation

void LineProfileTool::addLineMarker ( const QPoint &  start,
const QPoint &  end 
) [protected]

int LineProfileTool::averageImagePixel ( const QImage &  image,
int  px,
int  py,
bool  moreHorizontal 
) [protected]

void LineProfileTool::calculateLineProfile ( const QPoint &  start,
const QPoint &  end 
)

void LineProfileTool::mouseMoveEvent ( QMouseEvent *  e  )  [protected, virtual]

Mouse movements need to be monitored for updating the line during operation.

void LineProfileTool::mousePressEvent ( QMouseEvent *  e  )  [protected, virtual]

Pressing the left mouse button starts line selection.

Clicks with anything else than the left button are propagated to the parent as usual.

void LineProfileTool::mouseReleaseEvent ( QMouseEvent *  e  )  [protected, virtual]

Mouse releases end line selection and cause the profile to be displayed.

void LineProfileTool::paintEvent ( QPaintEvent *  e  )  [protected, virtual]

Draw line during operation (replaced by a LineMarker at the end).

virtual int LineProfileTool::rtti (  )  const [inline, virtual]

Reimplemented from PlotToolInterface.

void LineProfileTool::statusText ( const QString &   )  [signal]

Emitted whenever a new message should be presented to the user.

You don't have to connect to this signal if you alreay specified a reciever during initialization.


Member Data Documentation

ApplicationWindow* LineProfileTool::d_app [private]

int LineProfileTool::d_average_pixels [private]

Number of image pixels over which to average.

QPoint LineProfileTool::d_op_dp [private]

Difference between current and start position during operation.

QPoint LineProfileTool::d_op_start [private]

Mouse position where an operation started.

ImageMarker* LineProfileTool::d_target [private]

The image marker to operate on.


The documentation for this class was generated from the following files:
Generated on Thu Feb 7 13:59:28 2008 for QtiPlot by  doxygen 1.5.4