[Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Lodron, Gerald
Gerald.Lodron at joanneum.at
Tue Jan 17 02:36:23 EST 2017
Good idea, I made some tests:
if (this->HasNewData())
{
this->OLatest = this->m_poInternal->GetLatestImageData();
}
else
{
vtkErrorMacro(“You should never came here”);
}
I also tested to set a member variable vtkSmartPointer<vtkImageData> myTempImage; to the class (like you mentioned) and store it everytime so that output gets always ShallowCopied regardless to the HasNewData, but no effect. The HasNewData is always true because I call this function from my GUI panel and only force an update if that function returns true, so it would be strange if that would not work…..
I have the exact same workflow in my vtkPolyData source which works perfectly… I really don’t know why this does not work…. I copied the workflow from the PointCloud plugin…. (OpenNISource)
I also made now a minimalistic test and changed my requestdata function to:
vtkInformation *outInfo = outputVector->GetInformationObject(0);
vtkImageData * output = vtkImageData::SafeDownCast(outInfo ->Get(vtkDataObject::DATA_OBJECT()));
vtkSmartPointer<vtkImageData> imageData = vtkSmartPointer<vtkImageData>::New();
imageData ->SetDimensions(10, 10, 1);
imageData ->AllocateScalars(VTK_FLOAT, 1);
memset(imageData ->GetScalarPointer(), 0, 10*10*sizeof(float));
output ->ShallowCopy(imageData);
same behaviour….
Another failed try:
output ->SetDimensions(10, 10, 1);
output ->AllocateScalars(VTK_FLOAT, 1);
memset(output ->GetScalarPointer(), 0, 10 * 10 * sizeof(float));
By the way: why dows paraview say that images are rectilinear grid's? My output is a vtkImageData which does not seem to be inherited from rectilinear grid.... also when I load images normally into paraview I get rectilinear grids as output..... should I program a rectilinear grid output filter?
Von: Joachim Pouderoux [mailto:joachim.pouderoux at kitware.com]
Gesendet: Montag, 16. Jänner 2017 20:11
An: Lodron, Gerald
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Gerald,
I think there is the problem with this:
if (!this->HasNewData())
return 1;
It means that most of the time, the filter will return an empty output.
Instead, you should cache (retain a pointer off oLatest as member variable) the last image and ShallowCopy it to the output in this case.
Something like:
if (this->HasNewData())
{
this->OLatest = this->m_poInternal->GetLatestImageData();
}
if (this->OLatest)
poOutput->ShallowCopy(this->OLatest);
Best,
Joachim Pouderoux, PhD
Technical Expert - Scientific Computing Team
Kitware SAS
2017-01-16 4:12 GMT-04:00 Lodron, Gerald <Gerald.Lodron at joanneum.at>:
Hi
I uploaded a cleaned version of the reader without gui component to https://expirebox.com/download/b5db956fb2b0787ac16ef9b42e46698a.html (again 48h available). The GUI has included a timer which polls on the HasNewData() function and if it returns true it forces an update of the request data function. I copied that workflow of the PCLPlugin of Paraview of the Kinect OpenNI Source….. the commented code also displays the *.vti writing....
Best regards,
Gerald
Von: Joachim Pouderoux [mailto:joachim.pouderoux at kitware.com]
Gesendet: Freitag, 13. Jänner 2017 15:45
An: Lodron, Gerald
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Could you share the code of your reader? If you prefer you can remove all specific stuff and keep only VTK related stuff.
I would like to see how exactly you fetch the output grid to fill and how your filter defines its output.
Best,
Joachim Pouderoux, PhD
Technical Expert - Scientific Computing Team
Kitware SAS
2017-01-13 3:17 GMT-04:00 Lodron, Gerald <Gerald.Lodron at joanneum.at>:
Nope, the data is then nearly empty (<1kByte), hiere the vti writer output:
<VTKFile type="ImageData" version="1.0" byte_order="LittleEndian" header_type="UInt64">
<ImageData WholeExtent="0 -1 0 -1 0 -1" Origin="0 0 0" Spacing="1 1 1">
<Piece Extent="0 -1 0 -1 0 -1" >
<PointData Scalars="21745593">
<DataArray type="UInt8" Name="21745593" format="appended" RangeMin="1e+299" RangeMax="-1e+299" offset="0" />
</PointData>
<CellData>
</CellData>
</Piece>
</ImageData>
<AppendedData encoding="raw">
_
</AppendedData>
</VTKFile>
Here the mhd header which I usually prefer, the “DimSize” is 0,0,0:
ObjectType = Image
NDims = 3
BinaryData = True
BinaryDataByteOrderMSB = False
CompressedData = True
TransformMatrix = 1 0 0 0 1 0 0 0 1
Offset = 0 0 0
CenterOfRotation = 0 0 0
ElementSpacing = 1 1 1
DimSize = 0 0 0
AnatomicalOrientation = ???
ElementType = MET_UCHAR
ElementDataFile = test.zraw
Von: Joachim Pouderoux [mailto:joachim.pouderoux at kitware.com]
Gesendet: Donnerstag, 12. Jänner 2017 22:28
An: Lodron, Gerald
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
OK. That's weired, your VTI is correct.
And what if you save the output of your filter/reader with ParaView "Save Data"? Is data correctly saved and reloaded correctly?
Joachim
Joachim Pouderoux, PhD
Technical Expert - Scientific Computing Team
Kitware SAS
2017-01-11 8:14 GMT-04:00 Lodron, Gerald <Gerald.Lodron at joanneum.at>:
i have uploaded the vti onto
https://expirebox.com/download/60e7c1e8d177f282ae90d42f75e5ae50.html
the link is 48h accessible
when I load the vti into paraview everything is visualized correctly
Von: Paraview-developers [mailto:paraview-developers-bounces at paraview.org] Im Auftrag von Lodron, Gerald
Gesendet: Mittwoch, 11. Jänner 2017 12:07
An: Joachim Pouderoux
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Sorry for my late reply:
“21745593” is correct, that’s the UID string of the sensor/camera which generates the vtkImagedata, I set the string from its SDK…. I will try writing the vti file for you….
Von: Joachim Pouderoux [mailto:joachim.pouderoux at kitware.com]
Gesendet: Dienstag, 10. Jänner 2017 19:09
An: Lodron, Gerald
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Hmm sorry if I had took a closer look I would have seen that AllocateScalars set a default name "ImageScalars" to the scalar array.
Then don't know what you did but the print says that the name of your array is "21745593" which is quite strange. Is it what you did?
Could you write your "output" image data to a .VTI file using a vtkXMLImageDataWriter after initializing it in your RequestData
function and see if you can load in with PV and view it? Share it if you can't.
Best,
Joachim Pouderoux, PhD
Technical Expert - Scientific Computing Team
Kitware SAS
2017-01-10 2:00 GMT-04:00 Lodron, Gerald <Gerald.Lodron at joanneum.at>:
Here i printed my vtkImageDataOutput of my plugin in Request data, may that helps…:
output vtkImageData (00000087ABEB1260)
Debug: Off
Modified Time: 870183
Reference Count: 1
Registered Events: (none)
Information: 00000087AC049A90
Data Released: False
Global Release Data: Off
UpdateTime: 195896
Field Data:
Debug: Off
Modified Time: 870094
Reference Count: 1
Registered Events: (none)
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Number Of Points: 1920000
Number Of Cells: 1917201
Cell Data:
Debug: Off
Modified Time: 870179
Reference Count: 1
Registered Events:
Registered Observers:
vtkObserver (00000087ABC476A0)
Event: 33
EventName: ModifiedEvent
Command: 00000087AC0495E0
Priority: 0
Tag: 1
Number Of Arrays: 0
Number Of Components: 0
Number Of Tuples: 0
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars: (none)
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Point Data:
Debug: Off
Modified Time: 870183
Reference Count: 1
Registered Events:
Registered Observers:
vtkObserver (00000087ABC475B0)
Event: 33
EventName: ModifiedEvent
Command: 00000087AC0495E0
Priority: 0
Tag: 1
Number Of Arrays: 1
Array 0 name = 21745593
Number Of Components: 1
Number Of Tuples: 1920000
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars:
Debug: Off
Modified Time: 870148
Reference Count: 2
Registered Events: (none)
Name: 21745593
Data type: unsigned char
Size: 1920000
MaxId: 1919999
NumberOfComponents: 1
Information: 0000000000000000
Name: 21745593
Number Of Components: 1
Number Of Tuples: 1920000
Size: 1920000
MaxId: 1919999
LookupTable: (none)
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
Bounds:
Xmin,Xmax: (0, 1599)
Ymin,Ymax: (0, 1199)
Zmin,Zmax: (0, 0)
Compute Time: 870184
Spacing: (1, 1, 1)
Origin: (0, 0, 0)
Dimensions: (1600, 1200, 1)
Increments: (0, 0, 0)
Extent: (0, 1599, 0, 1199, 0, 0)
Von: Paraview-developers [mailto:paraview-developers-bounces at paraview.org] Im Auftrag von Lodron, Gerald
Gesendet: Dienstag, 10. Jänner 2017 06:49
An: Joachim Pouderoux
Cc: Paraview Developer (Paraview-developers at paraview.org); Paraview User (paraview at paraview.org)
Betreff: Re: [Paraview-developers] [Paraview] vtkImageData Plugin, vtkImageData not rendered
Hi
Good try but does not effect anything except the string in paraview’s combo box. The strange thing is that I also cannot see anything in spreadsheet view (empty cell and point data)… but on information tab point data and cell data is there….
Von: Joachim Pouderoux [mailto:joachim.pouderoux at kitware.com]
Gesendet: Montag, 09. Jänner 2017 19:40
An: Lodron, Gerald
Cc: Paraview User (paraview at paraview.org); Paraview Developer (Paraview-developers at paraview.org)
Betreff: Re: [Paraview] vtkImageData Plugin, vtkImageData not rendered
Hi Gerald,
Not sure it is the only issue but please try giving a name to the output scalar arrays.
ParaView won't make visible arrays which don't have a name.
Example:
output->GetPointData()->GetScalars()->SetName("values");
Best,
Joachim Pouderoux, PhD
Technical Expert - Scientific Computing Team
Kitware SAS
2017-01-09 5:20 GMT-04:00 Lodron, Gerald <Gerald.Lodron at joanneum.at>:
Hi
I programmed successfully a plugin source wich generates a vtkImageData output and made it the same way as on my 3d cloud plugins of vtkPolyData. The source is inherited from vtkImageAlgorithm and only contains one output with unsigned char array and one component.
In the request data function of the filter I currently have a very dummy:
output->SetDimensions(oData.imgSizeX, oData.imgSizeY, 1);
output ->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
memcpy(output ->GetScalarPointer(), &oData.imgData[0], oData.imgSizeX* oData.imgSizeY*sizeof(unsigned char));
in paraview I see in the information tab that I have an uniform rectilinear grid with 1917201 cells and 1920000 points (image is 1600*1200px). In data Arrays I get an "ImageScalars" of unsigned char and a correct range of my memcopy data (my min max range is not 0,255 so data seems to be there)...
the problem is that I cannot see anything in the render view, any suggestions what I am making wrong? I tested all representation (slice, surface, outline, on Solid Color and on my array), never see anything.....
I also compared the Information tab on a loaded jpeg image and cannot see any difference (which is rendered in render view except the Array's string name), by the way: can I disable "MapScalars" by default?
I am using pv5.2
------------------------------------------------------------------------------------
Gerald Lodron
Researcher of Machine Vision Applications Group
DIGITAL - Institute for Information and Communication Technologies
JOANNEUM RESEARCH Forschungsgesellschaft mbH
Steyrergasse 17, 8010 Graz, AUSTRIA
phone: +43-316-876-1751
general fax: +43-316-876-1751
web: http://www.joanneum.at/digital
e-mail: gerald.lodron at joanneum.at
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
Search the list archives at: http://markmail.org/search/?q=ParaView
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview
More information about the Paraview-developers
mailing list