[Insight-users] Fwd: Volume overlay

Sara Rolfe smrolfe at u.washington.edu
Thu Feb 10 15:18:24 EST 2011


>
> Thanks Robert, I was hoping there might be a way to do this without  
> iterating through the pixels, but I think you are right that this is  
> the best way to go.
>
> On Feb 10, 2011, at 11:09 AM, robert tamburo wrote:
>
>> You could create a blank RGB image, iterate the RGB image, then set  
>> pixels one by one. Something like:
>>
>> // initialize zero filled RGB image
>> rgbImage = RGBImageType::New();
>> RGBImageType::PixelType tempPixel;
>> tempPixel.Fill(0);
>> rgbImage->FillBuffer(tempPixel);
>>
>> RGBImageType::PixelType rgbPixel;
>>
>> // iterate RGB image
>> RGBIteratorType it(rgbImage, rgbImage->GetLargestPossibleRegion())
>> it.GoToBegin();
>> while(!it.IsAtEnd())
>> {
>>   if(labelImage1->GetPixel(it.GetIndex() != 0)
>>     {
>>     // set labelImage1 pixels to green
>>     rgbPixel[0] = 0; rgbPixel[1] = 255; rgbPixel[2] = 0;
>>     rgbImage->SetPixel(it.GetIndex(), rgbPixel);
>>     }
>>   else if(labelImage2->GetPixel(it.GetIndex() != 0)
>>     {
>>     // set labelImage2 pixels to blue
>>     rgbPixel[0] = 0; rgbPixel[1] = 0; rgbPixel[2] = 255;
>>     rgbImage->SetPixel(it.GetIndex(), rgbPixel);
>>     }
>>   else
>>     {
>>     // copy image data for non-label pixels
>>     rgbPixel.Fill(originalImage->GetPixel(it.GetIndex());
>>     rgbImage->SetPixel(it.GetIndex(), rgbPixel);
>>     }
>> ++it;
>> }
>>
>> Caveats: 1) images need to be of the same size and 2) above code  
>> was written freehand without testing :)
>>
>> On Thu, Feb 10, 2011 at 1:38 PM, Sara Rolfe  
>> <smrolfe at u.washington.edu> wrote:
>> Hello,
>>
>> I'm attempting to overlay an image with color.  I've had trouble  
>> finding documentation on this, either in ITK or VTK.  The way I'm  
>> going about it is to scale the values of the image down and then  
>> use the add image filter to add the labels on top.  I could then  
>> use VTK to create a corresponding colormap.
>>
>> However, I'm getting stuck on something that should be very  
>> simple.  My operations to combine the two images are failing.  I  
>> think the problem is the SubtractConstantFromImageFilter.  I've  
>> checked the output and it looks like the constant is not being  
>> subtracted.  The input to this filter is an image with a value of 0  
>> for the background and 255 for the object.  I'd like to change  
>> these to 0 and 1.  The pixel type is unsigned char.  I use the  
>> following:
>>
>> 	SubFilterType::Pointer subFilter = SubFilterType::New();
>> 	InputPixelType subValue = 254;
>> 	subFilter->SetConstant(subValue);
>> 	subFilter->SetInput( imageInverter->GetOutput() );
>> 	subFilter->Update();
>>
>> But the output image is still 0 - 255.  Am I missing something  
>> simple?
>>
>> Also, is there a better way to accomplish this task, or any  
>> examples showing something similar?
>>
>> Thanks,
>> Sara
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110210/b5a1cd80/attachment.htm>


More information about the Insight-users mailing list