<font size="2"><font face="verdana,sans-serif">Your reader has TPixel=unsigned short and your filter has TPixel=unsigned char. It has to be the same (both either char or short). Which compiler are you using? VS2008 and VS2010 report these types in the error message.</font></font><div>

<font size="2"><font face="verdana,sans-serif"><br></font></font></div><div><font size="2"><font face="verdana,sans-serif">HTH<br></font></font><br><div class="gmail_quote">On Tue, May 31, 2011 at 10:49, john smith <span dir="ltr">&lt;<a href="mailto:mkitkinsightuser@gmail.com">mkitkinsightuser@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hello, I am running the extract image filter, but I use two functions, one for loading the reader and one for use the ExtractImageFilter. The error and the cofe follows. I hope somebody could help me as I can&#39;t understand what is wrong. I also use Qt, but the problem I think in  ITK code.<br>


<br>error (the error point is highlighted) :<br><br><i>error C2664: &#39;void itk::ImageToImageFilter&lt;TInputImage,TOutputImage&gt;::SetInput(const itk::Image&lt;TPixel,VImageDimension&gt; *)&#39; : cannot convert parameter 1 from &#39;itk::Image&lt;TPixel,VImageDimension&gt; *&#39; to &#39;const itk::Image&lt;TPixel,VImageDimension&gt; </i><br>


<br>////////// mainwindow.cpp //////////////////<br>#include &quot;mainwindow.h&quot;<br>#include &quot;ui_mainwindow.h&quot;<br>#include &quot;canvas.h&quot;<br><br>#include &quot;itkImage.h&quot;<br>#include &quot;itkImageFileReader.h&quot;<br>


#include &quot;itkImageFileWriter.h&quot;<br>#include &quot;itkExtractImageFilter.h&quot;<br>#include &lt;itkSize.h&gt;<br><br>QString fileName;<br><br>  unsigned long size_x;<br>  unsigned long size_y;<br>  unsigned long size_z;<br>


<br><br>      typedef unsigned short PixelType;<br>     const unsigned int Dimension = 3;<br>    typedef itk::Image&lt; PixelType, Dimension &gt; InputImageType;<br><br>    typedef itk::ImageFileReader&lt; InputImageType &gt; ReaderType;<br>


    ReaderType::Pointer reader;<br><br><br>MainWindow::MainWindow(QWidget *parent) :<br>    QMainWindow(parent),<br>    ui(new Ui::MainWindow)<br>{<br>    ui-&gt;setupUi(this);<br><br>    ui-&gt;graphicsView_inputImage-&gt;setScene(scene=new Canvas());<br>


<br>    connect(scene,SIGNAL(mousejustpressed(int,int)),this,SLOT(mousejustpressed(int,int)));<br><br>    QObject::connect(ui-&gt;pushButton_openFile, SIGNAL(clicked()), this, SLOT(push_button_File()));<br><br>    QObject::connect(ui-&gt;pushButton_slice_z, SIGNAL(clicked()), this, SLOT(z_slice_extract()));<br>


<br>    connect(ui-&gt;verticalScrollBar_z, SIGNAL(valueChanged()), this, SLOT(()));<br><br>    <br>   typedef unsigned char        InputPixelType;<br>  typedef itk::Image&lt; InputPixelType,  3 &gt;    InputImageType;<br>


  typedef itk::ImageFileReader&lt; InputImageType  &gt;  ReaderType;<br>  ReaderType::Pointer reader = ReaderType::New();<br>}<br><br>void MainWindow::push_button_File()<br>{<br> <br>///unsigned char to display in .png format<br>


<br>  reader-&gt;SetFileName(&quot;C:/Users/......../test.png&quot;);<br>  reader-&gt;Update();<br>}<br><br><br>void MainWindow::z_slice_extract()<br>{<br><br>  <br>///unsigned char to display in .png format<br>  typedef unsigned char        InputPixelType;<br>


  typedef unsigned char        OutputPixelType;<br><br>  typedef itk::Image&lt; InputPixelType,  3 &gt;    InputImageType;<br>  typedef itk::Image&lt; OutputPixelType, 2 &gt;    OutputImageType;<br><br>  typedef itk::ImageFileReader&lt; InputImageType  &gt;  ReaderType;<br>


  typedef itk::ImageFileWriter&lt; OutputImageType &gt;  WriterType;<br><br> <br>  WriterType::Pointer writer = WriterType::New();<br><br>  writer-&gt;SetFileName( &quot;2D.png&quot; );<br><br>  <br>  typedef itk::ExtractImageFilter&lt; InputImageType, OutputImageType &gt; FilterType;<br>


  FilterType::Pointer filter = FilterType::New();<br><br><br>  InputImageType::RegionType inputRegion =<br>           reader-&gt;GetOutput()-&gt;GetLargestPossibleRegion();<br><br>  InputImageType::SizeType size = inputRegion.GetSize();<br>


 <br>  // get the size of the hole 3D image<br>  unsigned long size_x = size[0];<br>  unsigned long size_y = size[1];<br>  unsigned long size_z = size[2];<br>  <br>  // get slices of z coordiante<br>  size[2] = 0; <br><br>


<br>  InputImageType::IndexType start = inputRegion.GetIndex();<br>  ui-&gt;verticalScrollBar_z-&gt;setRange(1,size_z);<br>  unsigned int sliceNumber = ui-&gt;verticalScrollBar_z-&gt;value();<br>  start[2] = sliceNumber;<br>


<br> <br><br>  InputImageType::RegionType desiredRegion;<br>  desiredRegion.SetSize( size );<br>  desiredRegion.SetIndex( start );<br><br>  filter-&gt;SetExtractionRegion( desiredRegion );<br><br> <span style="background-color:rgb(255, 255, 51)"> filter-&gt;SetInput( reader-&gt;GetOutput() );</span><br>


  writer-&gt;SetInput( filter-&gt;GetOutput() );<br><br>      try<br>    {<br>    writer-&gt;Update();    <br>    }<br>    catch( itk::ExceptionObject &amp; err )<br>    {<br>    std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;<br>


    std::cerr &lt;&lt; err &lt;&lt; std::endl;<br>    }<br><br><br>     scene-&gt;addPixmap(QPixmap(&quot;2D.png&quot;));<br>          ui-&gt;graphicsView_inputImage-&gt;setScene(scene);<br>    <br><br><br>    // taking the size of the loaded image<br>


    ui-&gt;label_4-&gt;setText(QString(&quot;size x:%1&quot;).arg(size_x));<br>    ui-&gt;label_5-&gt;setText(QString(&quot;size y:%1&quot;).arg(size_y));<br>    ui-&gt;label_6-&gt;setText(QString(&quot;size z:%1&quot;).arg(size_z));<br>


<br>    return;<br>}<br><br><br><br><br><br>void MainWindow::mousejustpressed(int x,int y)<br>{<br>    int k1=256-y;<br><br><br>    unsigned char value;<br><br>    QImage image(scene-&gt;sceneRect().size().toSize(), <br>

    QImage::Format_RGB32);<br>
    <br>    QPainter painter(&amp;image);<br>    scene-&gt;render(&amp;painter);<br>    <br>    value=image.pixel(x,k1);<br>    <br><br>    /**QImage buffer = QImage(1,1, QImage::Format_RGB32);<br>    QPainter painter(&amp;buffer);<br>


    scene-&gt;render(&amp;painter, QRectF(0.0, 0.0, 1.0, 1.0), QRectF(x, y, 1.0, 1.0));<br>    int value = qGray(buffer.pixel(0,0));<br>    */<br><br>    ui-&gt;label-&gt;setText(QString(&quot;x:%1&quot;).arg(x));<br>    ui-&gt;label_2-&gt;setText(QString(&quot;y:%1&quot;).arg(k1));<br>


    ui-&gt;label_3-&gt;setText(QString(&quot;pixel value:%1&quot;).arg(value));<br><br><br>}<br><br><br>MainWindow::~MainWindow()<br>{<br>    delete ui;<br>}<br><br><br><br>////////////////// mainwindow.h //////////////<br>


#ifndef MAINWINDOW_H<br>#define MAINWINDOW_H<br><br>#include &lt;QMainWindow&gt;<br>#include &lt;QGraphicsScene&gt;<br>#include &quot;canvas.h&quot;<br><br>#include &quot;itkImage.h&quot;<br>#include &quot;itkImageFileReader.h&quot;<br>


<br>#include &lt;qstring.h&gt;<br>#include &lt;qdir.h&gt;<br>#include &lt;qfiledialog.h&gt;<br>#include &lt;qmessagebox.h&gt;<br>#include &lt;qlabel.h&gt;<br>#include &lt;qgraphicsScene.h&gt;<br><br>#include &lt;QGraphicsPixmapItem&gt;<br>


<br><br><br><br>namespace Ui {<br>    class MainWindow;<br>}<br><br>class MainWindow : public QMainWindow<br>{<br>    Q_OBJECT<br><br>     Canvas *scene;<br><br><br>public:<br>    explicit MainWindow(QWidget *parent = 0);<br>


    ~MainWindow();<br><br>private:<br>    Ui::MainWindow *ui;<br><br>    public slots:<br>    void mousejustpressed(int x,int y);<br><br>        public slots:<br>        void push_button_File();<br>        void z_slice_extract();<br>


<br><br>};<br><br>#endif // MAINWINDOW_H<br><br><br><br><br><br>
<br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br></div>