[OpenWalnut-Dev] Write file reader for WDataSetScalar

Frank Zisko frank.zisko at gmx.net
Wed May 23 11:46:27 CEST 2012


Hi,

I did it. In retrospect it was pretty easy. m(
The constructor of WValueSetBase allows initializing without datatypedef
(here W_DT_UINT8), so I did it (wrong).

Thanks to all, who helped me!

Greetings
Frank



ps: Does anyone have a simple idea on how to change axes interchanged
and the voxel size (mm)? With the transformation matrix?

################################################################

My false attempt:


    boost::shared_ptr< std::vector< int > > myData =  boost::shared_ptr<
std::vector< int > >( new std::vector< int >( voxelCount ) );
[...]
    boost::shared_ptr< WValueSetBase > myValueSet;
    myValueSet = boost::shared_ptr< WValueSetBase >( new WValueSet< int
>( order, tensorDim, myData ) );
    // DON'T FORGET TO EDIT SPACING PROPERTIES FROM DATA SET INTO
WDATASETSCALAR!
    boost::shared_ptr< WGrid > myGrid;
    // Transformation of data block
    myGrid = boost::shared_ptr< WGridRegular3D >( new
WGridRegular3D( dimX, dimY, dimZ, ( WMatrix< double >( 4, 4
).makeIdentity() )));

    boost::shared_ptr< WDataSet > myDataSet;
    myDataSet = boost::shared_ptr< WDataSet >( new
WDataSetScalar( myValueSet, myGrid ) );
    myDataSet->setFilename( m_fname );
    m_ifs->close();
    wlog::debug( "WReader" ) << "Reading Volume ... Done.";
    return myDataSet;

################################################################

Correct attempt:

    boost::shared_ptr< std::vector< uint8_t > > myData =
boost::shared_ptr< std::vector< uint8_t > >( new std::vector< uint8_t
>( voxelCount ) );
[...]
    boost::shared_ptr< WValueSetBase > myValueSet;
    myValueSet = boost::shared_ptr< WValueSetBase >( new WValueSet<
uint32_t >( order, tensorDim, myData, W_DT_UINT8 ) );
    // DON'T FORGET TO EDIT SPACING PROPERTIES FROM DATA SET INTO
WDATASETSCALAR!
    boost::shared_ptr< WGrid > myGrid;
    // Transformation of data block
    myGrid = boost::shared_ptr< WGridRegular3D >( new
WGridRegular3D( dimX, dimY, dimZ, ( WMatrix< double >( 4, 4
).makeIdentity() )));

    boost::shared_ptr< WDataSet > myDataSet;
    myDataSet = boost::shared_ptr< WDataSet >( new
WDataSetScalar( myValueSet, myGrid ) );
    myDataSet->setFilename( m_fname );
    m_ifs->close();
    wlog::debug( "WReader" ) << "Reading Volume ... Done.";
    return myDataSet;




More information about the OpenWalnut-Dev mailing list