<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>RE: [Insight-users] PLEASE HELP! 48 bit to 24 bit RGB Image conversion</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi,<BR>
<BR>
I figured out that the itkVectorRescaleIntensityImageFilter requires a Vector as input, but for the output I could use my target which was an RGBPixel. Problem now though, the converted image comes out all black. Am I forgetting to set something? please look at the code below (it will run as is). All I want to do (as is obvious from the code below) is to convert a 48 bit RGB image to a 24 bit RGB image. The code below works, but the resulting image is pitch black. Please help any way you can<BR>
<BR>
Thanks<BR>
<BR>
John<BR>
--------------------------------------------------------------------------<BR>
<BR>
#include &quot;itkImage.h&quot;<BR>
#include &quot;itkImageFileReader.h&quot;<BR>
#include &quot;itkImageFileWriter.h&quot;<BR>
#include &quot;itkResampleImageFilter.h&quot;<BR>
#include &quot;itkLinearInterpolateImageFunction.h&quot;<BR>
#include &quot;vtkImageActor.h&quot;<BR>
#include &quot;vtkRenderWindowInteractor.h&quot;<BR>
#include &quot;vtkRenderWindow.h&quot;<BR>
#include &quot;vtkRenderer.h&quot;<BR>
#include &quot;itkSimilarity2DTransform.h&quot;<BR>
#include &quot;itkImageToVTKImageFilter.h&quot;<BR>
#include &quot;vtkCamera.h&quot;<BR>
#include &quot;itkImage.h&quot;<BR>
#include &quot;itkImageFileReader.h&quot;<BR>
#include &quot;itkImageToVTKImageFilter.h&quot;<BR>
#include &quot;itkVectorResampleImageFilter.h&quot;<BR>
#include &quot;itkSimilarity2DTransform.h&quot;<BR>
#include &quot;itkRGBPixel.h&quot;<BR>
#include &quot;itkVector.h&quot;<BR>
#include &quot;vtkRenderWindow.h&quot;<BR>
#include &quot;itkVectorRescaleIntensityImageFilter.h&quot;<BR>
#include &quot;itkVectorInterpolateImageFunction.h&quot;<BR>
<BR>
<BR>
int main( int argc, char * argv[] )<BR>
{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (argc &lt; 2)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;&quot;Please enter filename for a picture\n&quot;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const unsigned int Dimmension = 2;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::Vector&lt;unsigned short&gt;&nbsp; InputPixelType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::RGBPixel&lt;unsigned char&gt;&nbsp; OutputPixelType;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::Image&lt;InputPixelType, Dimmension&gt; InputImageType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::Image&lt;OutputPixelType, Dimmension&gt; OutputImageType;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::ImageFileReader&lt;InputImageType&gt;&nbsp; ReaderType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReaderType::Pointer reader = ReaderType::New();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName(argv[1]);<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::ImageFileWriter&lt;OutputImageType&gt;&nbsp; WriterType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WriterType::Pointer writer = WriterType::New();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;SetFileName(&quot;convertedfile.png&quot;);<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::VectorRescaleIntensityImageFilter&lt;InputImageType, OutputImageType&gt; RescaleFilterType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RescaleFilterType::Pointer rescaleFilter = RescaleFilterType::New();<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rescaleFilter-&gt;SetInput(reader-&gt;GetOutput());<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;SetInput(rescaleFilter-&gt;GetOutput());<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;Update();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; err )<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; err &lt;&lt; std::endl;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;&quot;PROCESSING PASSED!&quot;&lt;&lt;endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>
}<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Bill Lorensen [<A HREF="mailto:bill.lorensen@gmail.com">mailto:bill.lorensen@gmail.com</A>]<BR>
Sent: Thu 6/5/2008 3:43 PM<BR>
To: John Eke<BR>
Cc: insight-users@itk.org<BR>
Subject: Re: [Insight-users] PLEASE HELP! RescaleIntensityImageFilter and Non Scalar Images<BR>
<BR>
try itkVectorRescaleIntensityImageFilter<BR>
<BR>
On Thu, Jun 5, 2008 at 2:45 PM, John Eke &lt;johne@annidis.com&gt; wrote:<BR>
&gt; Hi,<BR>
&gt;<BR>
&gt; Could someone please show me how to read use the RescaleIntensityImageFilter<BR>
&gt; with RGB Images? When I set an RGB image type (of type itk::RGBPixel&lt;short<BR>
&gt; unsigned int&gt;) as input, I get lots of very confusing errors upon<BR>
&gt; initializing the object:<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const unsigned int Dimmension = 2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::RGBPixel&lt;short unsigned int&gt;&nbsp; InputPixelType;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::RGBPixel&lt;unsigned char&gt;&nbsp; OutputPixelType;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::Image&lt;InputPixelType,&nbsp; Dimmension&gt;&nbsp;&nbsp; InputImageType;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::Image&lt;OutputPixelType, Dimmension&gt;&nbsp;&nbsp; OutputImageType;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::ImageFileReader&lt;InputImageType&gt;&nbsp; ReaderType;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReaderType::Pointer reader = ReaderType::New();<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName(path.toStdString().c_str());<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::RescaleIntensityImageFilter&lt;InputImageType,<BR>
&gt; OutputImageType&gt; FilterType;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FilterType::Pointer filter = FilterType::New();&nbsp;&nbsp; //ERROR OCCURS HERE<BR>
&gt;<BR>
&gt; What am I not doing right?<BR>
&gt;<BR>
&gt; Thanks<BR>
&gt;<BR>
&gt; John<BR>
&gt; _______________________________________________<BR>
&gt; Insight-users mailing list<BR>
&gt; Insight-users@itk.org<BR>
&gt; <A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
&gt;<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>