]> Creatis software - creaMaracasVisu.git/blobdiff - appli/QtVTKViewer/qtvtkviewer.cxx
#2490 creaMaracasVisu Feature New High - Histogram Interaction
[creaMaracasVisu.git] / appli / QtVTKViewer / qtvtkviewer.cxx
index a4388d079d3b9d23bc8807fcda716de087931815..90e17064a323a857717c7020bfd09385f3317564 100644 (file)
@@ -1,45 +1,50 @@
+/*
+# ---------------------------------------------------------------------
+#
+# 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)
 {
@@ -50,78 +55,29 @@ int main(int argc, char **argv)
 
 
 
+    vtkImageData* img = 0;
 
-    if (argc < 2)
-      {
-        std::cout << "ERROR: Image filename missing, Filename RGB Image 2D"
-                  << 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);
 
 
@@ -130,19 +86,13 @@ int main(int argc, char **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();
 }