+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+# pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+# This software is governed by the CeCILL-B license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL-B
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+# or in the file LICENSE.txt.
+#
+# As a counterpart to the access to the source code and rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
//----------------------------------------------------------------------
-// File: ann_sample.cpp
-// Programmer: Sunil Arya and David Mount
-// Last modified: 03/04/98 (Release 0.1)
-// Description: Sample program for ANN
-//----------------------------------------------------------------------
-// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and
-// David Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the Approximate
-// Nearest Neighbor Library (ANN). This software is provided under
-// the provisions of the Lesser GNU Public License (LGPL). See the
-// file ../ReadMe.txt for further information.
-//
-// The University of Maryland (U.M.) and the authors make no
-// representations about the suitability or fitness of this software for
-// any purpose. It is provided "as is" without express or implied
-// warranty.
+// File: qtvtkviewer.cxx
+// Programmer: Prieto
+// Last modified: 25/08/11 (Release 0.1)
+// Description: Sample program fro qtvtkviewer
//----------------------------------------------------------------------
#include "qtvtkviewerwidget.h"
#include <QMainWindow>
#include <QApplication>
-#include "itktovtkimageimport.h"
-#include "itkImage.h"
-#include "itkRGBPixel.h"
-#include "itkImageFileReader.h"
-
-#include "itkvtkcolortransferfunction.h"
#include "iostream"
+#include "vtkMetaImageReader.h"
+//#include "OpenImageDialog.h"
-
-
-
-using namespace std; // make std:: accessible
-
+using namespace std;
+//using namespace creaMaracasVisuKernel;
int main(int argc, char **argv)
{
+ vtkImageData* img = 0;
- if (argc < 2)
- {
- std::cout << "ERROR: data file name argument missing."
- << std::endl ;
- return EXIT_FAILURE;
- }
-
- std::string inputFilename = argv[1];
- //std::string inputFilename2 = argv[2];
-
-
- typedef unsigned char PixelType;
- typedef itk::RGBPixel< PixelType > RGBPixelType;
- typedef itk::Image< RGBPixelType, 2 > RGBImageType;
-
- typedef itk::ImageFileReader< RGBImageType > ImageReaderType ;
- ImageReaderType::Pointer imageReader = ImageReaderType::New() ;
- imageReader->SetFileName(inputFilename.c_str());
- imageReader->Update();
- RGBImageType::Pointer imagergb = imageReader->GetOutput();
-
-
- typedef itk::ITKToVTKImageImport< RGBImageType > ITKToVTKRGBType;
- ITKToVTKRGBType::Pointer itktovtkrgb = ITKToVTKRGBType::New();
- itktovtkrgb->SetITKImage(imagergb);
-
-
-
+ /*if (argc < 2){
- typedef itk::Image< RGBPixelType, 3> RGBImage3DType;
- RGBImage3DType::Pointer image = RGBImage3DType::New();
- RGBImage3DType::RegionType region;
- region.SetSize(0, 256);
- region.SetSize(1, 256);
- region.SetSize(2, 256);
- region.SetIndex(0,0);
- region.SetIndex(1,0);
- region.SetIndex(2,0);
+ OpenImageDialog open(true);
+ img = open.getImageData();
- image->SetRegions(region);
- image->Allocate();
+ if(img == 0){
+ std::cout << "ERROR: Image filename missing. usage qtvtkviewer <image filename>"
+ << std::endl ;
+ return EXIT_FAILURE;
+ }
+ }else*/
+ if(argc==2){
+ std::string inputFilename = argv[1];
- typedef itk::ITKToVTKImageImport< RGBImage3DType > ITKToVTKType;
- ITKToVTKType::Pointer itktovtk = ITKToVTKType::New();
- itktovtk->SetITKImage(image);
+ vtkMetaImageReader* reader = vtkMetaImageReader::New();
+ reader->SetFileName(inputFilename.c_str());
+ reader->Update();
+ img = reader->GetOutput();
+ }
- typedef itk::Image< unsigned char, 2 > LuminanceImageType;
- typedef itk::RGBToLuminanceImageFilter< RGBImageType, LuminanceImageType> RGBToLumType;
- RGBToLumType::Pointer rgbtolum = RGBToLumType::New();
- rgbtolum->SetInput(imagergb);
- rgbtolum->Update();
- LuminanceImageType::Pointer lumimage = rgbtolum->GetOutput();
-
-
- typedef itk::ITKToVTKImageImport< LuminanceImageType > ITKToVTKLuminanceType;
- ITKToVTKLuminanceType::Pointer itktovtklum = ITKToVTKLuminanceType::New();
- itktovtklum->SetITKImage(lumimage);
-
-
- vtkImageData* vtkimage =itktovtklum->GetOutputVTKImage();
-
-
-
- typedef itk::VTKColorTransferFunction< RGBImageType > VTKColorTransferType;
- VTKColorTransferType::Pointer vtkcolortransfer = VTKColorTransferType::New();
-
- vtkcolortransfer->SetInput(imagergb);
- vtkcolortransfer->Update();
- vtkColorTransferFunction* colortransfer = vtkcolortransfer->GetOutput();
-
QApplication app(argc, argv);
QtVTKViewerWidget *viewer = new QtVTKViewerWidget(mainwindow);
mainwindow-> setCentralWidget(viewer);
+ mainwindow->setMinimumSize(1024, 768);
+ mainwindow->showMaximized();
- mainwindow->show();
-
- viewer->setImage(vtkimage);
- viewer->SetLookupTable((vtkLookupTable*)colortransfer);
- int scalnum = vtkimage->GetNumberOfScalarComponents();
-
- cout<<scalnum<<endl;
-
-
-
-
+ if(img)
+ viewer->setImage(img);
+ //viewer->SetLookupTable((vtkLookupTable*)colortransfer);
return app.exec();
}