Graphics-VTK
view release on metacpan or search on metacpan
examples/ImageProcessing/HistogramWidget.pm view on Meta::CPAN
#!/usr/local/bin/perl -w
#
#
# Histogram widget for the test script Histogram.pl
#
#
package Graphics::VTK::Tk::HistogramWidget;
use Tk;
use Graphics::VTK;
use Carp;
use base qw(Tk::Derived Tk::Frame);
Tk::Widget->Construct("HistogramWidget");
# creates a meta object which clips a region of the input, and
# draws a histogram for the data.
# create a histogram object
#
sub Populate {
my ($widget, $args) = @_;
$widget->SUPER::Populate($args);
my $accumulate;
my $actor;
my $canvas;
my $clip;
my $imager;
my $mapper;
my $viewer;
$clip = $widget->{'Clip'} = Graphics::VTK::ImageClip->new;
$accumulate = $widget->{'Accumulate'} = Graphics::VTK::ImageAccumulate->new;
$canvas = $widget->{'Canvas'} = Graphics::VTK::ImageCanvasSource2D->new;
$canvas->SetNumberOfScalarComponents(1);
$canvas->SetScalarTypeToUnsignedChar;
#$viewer = $widget->{'Viewer'} = Graphics::VTK::ImageViewer->new;
#$viewer->SetColorWindow(256);
#$viewer->SetColorLevel(127);
my $top = $widget->Component('Frame', 'top');
my $vtkImageViewer = $widget->Component('vtkImageViewer', 'vtkImageViewer',
-delegate => ['Render', 'GetImageViewer'], # render method is delegate to vtkImageViewer
'-width',512,'-height',200);
# -iv => $viewer);
$viewer = $widget->{'Viewer'} = $vtkImageViewer->cget(-iv);
$viewer->SetColorWindow(256);
$viewer->SetColorLevel(127);
# Delegate options to this widget
$widget->ConfigSpecs(
DEFAULT => [$vtkImageViewer],
);
$accumulate->SetInput($clip->GetOutput);
$viewer->SetInput($canvas->GetOutput);
# create text actor for value display
$mapper = $widget->{'Mapper1'} = Graphics::VTK::TextMapper->new;
$mapper->SetInput("none");
$mapper->SetFontFamilyToTimes;
$mapper->SetFontSize(18);
$mapper->BoldOn;
$mapper->ShadowOn;
$actor = $widget->{'Actor1'} = Graphics::VTK::Actor2D->new;
$actor->SetMapper($mapper);
$actor->SetLayerNumber(1);
$actor->GetPositionCoordinate->SetValue(4,4);
$actor->GetProperty->SetColor(0,0.8,0);
$actor->SetVisibility(0);
$imager = $vtkImageViewer->GetImageViewer->GetRenderer;
$imager->AddActor2D($actor);
( run in 1.218 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )