<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi,<br>
<br>
Below is the code that demonstrates how I currently make
vtkImageData that is not transparent, also attached is an image of
the window showing this for this example code.<br>
<br>
Right now I dont see how to modify this to make the zero values
transparent. Any help would be greatly appreciated.<br>
<br>
Thanks<br>
Alex<br>
<br>
#include <iostream><br>
#include <vtkSmartPointer.h> <br>
#include <vtkActor.h><br>
#include <vtkRenderWindow.h><br>
#include <vtkRenderWindowInteractor.h><br>
#include <vtkRenderer.h><br>
#include <vtkLookupTable.h><br>
#include <vtkFloatArray.h><br>
#include <vtkPointData.h><br>
#include <vtkImageMapToColors.h><br>
#include <vtkImageActor.h><br>
#include <vtkScalarBarActor.h><br>
#include <vtkImageData.h><br>
#include <vtkCubeSource.h><br>
#include <vtkPolyDataMapper.h><br>
#include <vtkProperty.h><br>
<br>
using namespace std;<br>
<br>
vtkSmartPointer<vtkLookupTable> setupLookupTable(void)<br>
{<br>
vtkSmartPointer<vtkLookupTable> table =
vtkSmartPointer<vtkLookupTable>::New();<br>
double r = 1.0; double g = 1.0; double b = 0.0;<br>
for (int x = 0; x < 64 ; x++) <br>
{ <br>
if (x > 32) { r = r + 0.0258; g = g - 0.0129; b = b
- 0.0258; }<br>
if (x == 32){ r = 0.2; g = 0.4; b = 0.8; }<br>
if (x < 32) { r = r - 0.025; g = g -
0.0188; b = b + 0.025; }<br>
table->SetTableValue(x,r,g,b,1.0); <br>
}<br>
table->SetTableValue(32,0.2,0.4,0.8,1.0); // make sure
middle value matches background<br>
return table;<br>
}<br>
<br>
void generateArrayData( float *p, int L, int W )<br>
{ <br>
for (int i = 0; i < L*W; i++ ) // Generate random numbers
between -1.0 and 1.0<br>
{ p[i] = 2.0*(((double)(rand() / (RAND_MAX + 1.0)))-0.5); }
<br>
for (int x = 20; x < 50; x++ ) // Add some zeros (these
will be transparent)<br>
{ <br>
for (int y = 40; y < 70; y++ )<br>
{ <br>
p[x*W + y] = 0.0; <br>
} <br>
}<br>
}<br>
<br>
int main(int argc, char **argw)<br>
{<br>
int L = 100; int W = 100; int H = 50; int len = L*W;<br>
float *myArray;<br>
myArray = new float [len];<br>
<br>
vtkSmartPointer<vtkCubeSource> cube =
vtkSmartPointer<vtkCubeSource>::New();<br>
cube->SetXLength(L); cube->SetYLength(W);
cube->SetZLength(H);<br>
cube->SetCenter(L/2,W/2,-H);<br>
<br>
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New(); <br>
mapper->SetInput(cube->GetOutput());<br>
<br>
vtkSmartPointer<vtkActor> cubeActor =
vtkSmartPointer<vtkActor>::New();<br>
cubeActor->SetMapper( mapper );<br>
cubeActor->GetProperty()->SetColor(0.0,1.0,0.0); // make
green<br>
<br>
vtkSmartPointer<vtkFloatArray> data =
vtkSmartPointer<vtkFloatArray>::New(); <br>
generateArrayData( myArray, L, W );<br>
data->SetArray(myArray,L*W,1);<br>
<br>
vtkSmartPointer<vtkImageData> imgData2DVw =
vtkSmartPointer<vtkImageData>::New();<br>
imgData2DVw->SetOrigin(0,0,0);<br>
imgData2DVw->SetNumberOfScalarComponents(1);<br>
imgData2DVw->SetScalarTypeToFloat();<br>
imgData2DVw->SetExtent(0,L,0,W,0,0);<br>
imgData2DVw->SetSpacing(1.0,1.0,1.0);<br>
imgData2DVw->AllocateScalars(); <br>
imgData2DVw->GetPointData()->SetScalars(data);<br>
<br>
vtkSmartPointer<vtkLookupTable> table =
setupLookupTable();<br>
<br>
table->SetNumberOfTableValues(64);<br>
table->Build();<br>
table->SetScaleToLinear();<br>
table->SetRange(-1.0,1.0);<br>
<br>
vtkSmartPointer<vtkImageMapToColors> color =
vtkSmartPointer<vtkImageMapToColors>::New();<br>
color->SetLookupTable(table);<br>
color->SetInput(imgData2DVw); <br>
<br>
vtkSmartPointer<vtkImageActor> imActor =
vtkSmartPointer<vtkImageActor>::New();<br>
imActor->SetInput(color->GetOutput());<br>
<br>
vtkSmartPointer<vtkScalarBarActor> colorBar =
vtkSmartPointer<vtkScalarBarActor>::New();<br>
colorBar->SetLookupTable(table); <br>
colorBar->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport();<br>
colorBar->GetPositionCoordinate()->SetValue(0.1, 0.01);<br>
colorBar->SetOrientationToHorizontal();<br>
colorBar->SetWidth(0.8);<br>
colorBar->SetHeight(0.12); <br>
<br>
vtkSmartPointer<vtkRenderer> ren1 =
vtkSmartPointer<vtkRenderer>::New();<br>
vtkSmartPointer<vtkRenderWindow> renWin =
vtkSmartPointer<vtkRenderWindow>::New();<br>
vtkSmartPointer<vtkRenderWindowInteractor> iren =
vtkSmartPointer<vtkRenderWindowInteractor>::New();<br>
<br>
renWin->AddRenderer( ren1 );<br>
iren->SetRenderWindow( renWin );<br>
<br>
ren1->AddActor(colorBar); // Add Actors<br>
ren1->AddActor(imActor);<br>
ren1->AddActor(cubeActor);<br>
<br>
ren1->SetBackground(0.2, 0.4, 0.8); // window background
colour<br>
<br>
renWin->Render();<br>
<br>
iren->Start();<br>
<br>
delete []myArray;<br>
return 0;<br>
}<br>
<br>
<img src="cid:part1.05080101.03050303@gmail.com" alt=""
height="252" width="204"><br>
<br>
<br>
On 7/10/2012 8:56 AM, Najzero wrote:<br>
</div>
<blockquote cite="mid:1341899805821-5714583.post@n5.nabble.com"
type="cite">
<pre wrap="">Hi Alex,
you might wanna have a look into vtkLookupTable
We use it for example to have "black" values to be transparent.
First build the lookuptable, then apply to the texture.
<snippet we use>
body->_volume.reset( new dicom::modDicomVolume );
body->_lookupTable = vtkSmartPointer<vtkLookupTable>::New();
body->_bmpPixelData = vtkSmartPointer<modImage>::New(); // Pixeldaten
body->_bmpPolyData = vtkSmartPointer<vtkPolyData>::New(); //
Polygondaten
body->_texture = vtkSmartPointer<vtkTexture>::New(); // Textur
//=== set lookup table so it shows black values transparent
body->_lookupTable->SetNumberOfColors( 255 );
body->_lookupTable->SetTableRange( 0.0, 256 * 256 - 1 );
body->_lookupTable->SetHueRange( 0.0, 0.0 );
body->_lookupTable->SetSaturationRange( 0.0, 0.0 );
body->_lookupTable->SetAlphaRange( 0.0, 1.0 );
body->_lookupTable->Build();
body->_texture->SetInput( body->_bmpPixelData ); // Der Textur die
Pixeldaten zuweisen
body->_texture->MapColorScalarsThroughLookupTableOn();
body->_texture->SetLookupTable( body->_lookupTable ); // Der Textur die
Lookup-Table zuweisen
body->_texture->InterpolateOn();
KR Adrian
--
View this message in context: <a class="moz-txt-link-freetext" href="http://vtk.1045678.n5.nabble.com/Transparent-values-of-vtkImageData-tp5714562p5714583.html">http://vtk.1045678.n5.nabble.com/Transparent-values-of-vtkImageData-tp5714562p5714583.html</a>
Sent from the VTK - Users mailing list archive at Nabble.com.
_______________________________________________
Powered by <a class="moz-txt-link-abbreviated" href="http://www.kitware.com">www.kitware.com</a>
Visit other Kitware open-source projects at <a class="moz-txt-link-freetext" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a>
Please keep messages on-topic and check the VTK FAQ at: <a class="moz-txt-link-freetext" href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a>
Follow this link to subscribe/unsubscribe:
<a class="moz-txt-link-freetext" href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a>
</pre>
</blockquote>
<br>
<br>
</body>
</html>