[Insight-users] Volume overlay
robert tamburo
robert.tamburo at gmail.com
Thu Feb 10 14:09:47 EST 2011
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/1fb07127/attachment.htm>
More information about the Insight-users
mailing list