[vtkusers] how to change vtkImageBlend opacity
David Gobbi
david.gobbi at gmail.com
Mon Mar 7 10:01:14 EST 2016
You're right. For some reason I thought it had that method. You can use
table->SetAlphaRange(0.3, 0.3) instead, which does the same thing as
setting the opacity.
On Mon, Mar 7, 2016 at 7:57 AM, Muhammad Jawad <softplanner at gmail.com>
wrote:
> Hi David,
>
> But there is no SetOpacity() method is defined in vtkLookupTable.
>
> On 7 March 2016 at 15:49, David Gobbi <david.gobbi at gmail.com> wrote:
>
>> Hi Muhammad,
>>
>> Remove vtkImageBlend from your pipeline. Use the SetOpacity() method on
>> vtkLookupTable.
>>
>> - David
>>
>> On Mon, Mar 7, 2016 at 7:33 AM, Muhammad Jawad <softplanner at gmail.com>
>> wrote:
>>
>>> Hi David,
>>>
>>> thanks for your suggestions. I did the same as you mentioned, It add
>>> lookup table still opacity is not working. Perhaps, I did some wrong in my
>>> code.
>>>
>>> connectorDicom = LoadDicomReader(dirPath.toStdString());
>>>
>>>
>>> vtkSmartPointer<vtkLookupTable> imgFirstColorMap = vtkSmartPointer<vtkLookupTable>::New(); // hot color map
>>>
>>> imgFirstColorMap->SetRange( 0.0, 255.0 );
>>>
>>> imgFirstColorMap->SetHueRange( 0.0, 0.1 );
>>>
>>> imgFirstColorMap->SetValueRange( 0.4, 0.8 );
>>>
>>> imgFirstColorMap->Build();
>>>
>>>
>>> vtkSmartPointer<vtkImageMapToColors> firstColorMapper = vtkSmartPointer<vtkImageMapToColors>::New();
>>>
>>> firstColorMapper->SetInputData(connectorDicom->GetOutput());
>>>
>>> firstColorMapper->SetLookupTable( imgFirstColorMap );
>>>
>>> firstColorMapper->SetOutputFormatToRGBA();
>>>
>>> firstColorMapper->Update();
>>>
>>>
>>> blend->SetOpacity(0,0);
>>>
>>> blend->AddInputConnection(firstColorMapper->GetOutputPort());
>>>
>>> imgViewer->SetInputData(blend->GetOutput());
>>>
>>> imgViewer->UpdateDisplayExtent();
>>>
>>>
>>>
>>> Muhammad Jawad
>>>
>>>
>>> On 7 March 2016 at 14:53, David Gobbi <david.gobbi at gmail.com> wrote:
>>>
>>>> Hi Muhammad,
>>>>
>>>> The vtkImageBlend filter does not add an alpha component to the image.
>>>> If the first input to vtkImageBlend is RGB, then the output is RGB. This
>>>> filter will blend its inputs together, but given just one input, the output
>>>> will just be a copy of the input.
>>>>
>>>> If your image is greyscale, you can use vtkImageMapToColors to add an
>>>> alpha component, by using the SetOutputFormatToRGBA() option.
>>>>
>>>> - David
>>>>
>>>> On Mon, Mar 7, 2016 at 4:05 AM, Muhammad Jawad <softplanner at gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>> Dear Vtk users,
>>>>>
>>>>> I am using vtkimageblend class for multiple volumes and want to change
>>>>> opacity of volumes. Here I put the small code for single volume for
>>>>> simplicity.
>>>>>
>>>>> ImageViewer is working fine but opacity is not working.
>>>>>
>>>>>
>>>>> Any body have an idea that what I'm doing wrong here ?
>>>>>
>>>>>
>>>>> vtkSmartPointer<vtkImageBlend> blend = vtkSmartPointer<vtkImageBlend>::New();
>>>>>
>>>>>
>>>>> blend->SetInputData(0, reader->GetOutput());
>>>>>
>>>>>
>>>>> blend->SetOpacity(0, 0.3);
>>>>>
>>>>>
>>>>> vtkSmartPointer<vtkImageViewer2> imgViewer = vtkSmartPointer<vtkImageViewer2>::New();
>>>>>
>>>>>
>>>>> imgViewer->SetInputData(blend->GetOutput());
>>>>>
>>>>>
>>>>> imgViewer->UpdateDisplayExtent();
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Regards,
>>>>>
>>>>> Muhammad Jawad
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160307/1d0662d7/attachment.html>
More information about the vtkusers
mailing list