[OpenWalnut-Dev] Write file reader for WDataSetScalar

Alexander Wiebel wiebel_openwalnut at dergrosse.de
Mon May 14 16:13:46 CEST 2012


Hi Frank,
Mario might be right about endianness related problems. It looks like
something is wrong with the order of the bits or the values themselves.
So you might want to look at endianness or at the order in which you
have the values in the value set.

See my attached snapshots that I created using Amira.

Cheers,
Alex

On 05/14/2012 12:12 PM, Frank Zisko wrote:
> Hi Alex,
> 
> here is a file exported from OW. 
> 
> https://www.dropbox.com/s/xnrgvnsqxryayco/out.nii
> 
> Greetings
> 
> Frank
> 
> 
> Am Donnerstag, den 10.05.2012, 23:46 +0200 schrieb Alexander Wiebel:
>> Hi Frank,
>> I can not see the problem immediately. So let us approach it iteratively:
>> - Can you save the loaded dataset in NIfTI (.nii) format and send it to
>> me so I can check the data you actually loaded?
>>
>> Cheers Alex
>>
>> On 05/10/2012 05:58 PM, Frank Zisko wrote:
>>>
>>>
>>> Hey guys,
>>>
>>> I've a problem in writing a file reader.
>>> (ROOT/src/modules/data/io/WReaderMy.cpp  .h)
>>> It is a anatomic file. Including a header, voxels (intensity values) and
>>> postheader.
>>>
>>> I try to use a WDataSetScalar. Constructor want: WDataSetScalar aDataSet
>>> = new (WValueSetBase,WGrid). But something is wrong in my code. I write
>>> all values in WValueSet and create a WGrid. The 3D viewer shows a black
>>> dataset, the histogram viewer give me errors (see below). The tmp
>>> variable in the loop has right values. But I don't know why it doesn't
>>> works.
>>>
>>> Has anybody an idea what can i do?
>>>
>>>
>>> HEADER
>>>
>>> [...]
>>> protected:
>>>
>>>     boost::shared_ptr< std::ifstream > m_ifs;
>>> [...]
>>>
>>>
>>> SOURCE
>>>
>>> #include ...
>>> [...]
>>> boost::shared_ptr< WDataSet > WReaderMy::read()
>>> {
>>>     m_ifs = boost::shared_ptr< std::ifstream >( new std::ifstream() );
>>>     m_ifs->open( m_fname.c_str(), std::ifstream::in |
>>> std::ifstream::binary );
>>> [...]
>>>     wlog::info( "WReaderMy" ) << "Read array ...";
>>>     // My Data Array.
>>>     int voxelCount = dimX * dimY * dimZ;
>>>     int tensorDim = 1; // Scalar values.
>>>     int order = 0; // ?
>>>     boost::shared_ptr< std::vector< int > > myData =  boost::shared_ptr<
>>> std::vector< int > >( new std::vector< int >( voxelCount ) );
>>>
>>>     int tmp = 0;
>>>     for (int i = 0; i < voxelCount; i++)
>>>     {
>>>         //m_ifs->read( reinterpret_cast<char*>(&myData->at(i) ),  1);
>>>         m_ifs->read( reinterpret_cast<char*>(&tmp),  1); // Read 1 byte.
>>>         (*myData)[i] = tmp;
>>>     }
>>>     wlog::info( "WReaderMy" ) << "Read array ... Done.";
>>>
>>>     boost::shared_ptr< WValueSetBase > myValueSet; // For creatiung
>>> DataSetScalar ( WValueSetBase, WGrid).
>>>     myValueSet = boost::shared_ptr< WValueSetBase >( new WValueSet< int
>>>> ( order, tensorDim, myData) );
>>>
>>>
>>> [...]
>>>     boost::shared_ptr< WGrid > myGrid;
>>>     myGrid = boost::shared_ptr< WGridRegular3D >( new WGridRegular3D(
>>> dimX, dimY, dimZ, WGridTransformOrtho( getStandardTransform() ) ) );
>>>     boost::shared_ptr< WDataSet > myDataSet;
>>>     wlog::debug( "WReaderMy" ) << "Load as WDataSetScalar";
>>>     myDataSet = boost::shared_ptr< WDataSet >( new WDataSetScalar(
>>> myValueSet, myGrid ) );
>>>     myDataSet->setFilename( m_fname );
>>>     m_ifs->close();
>>>     return myDataSet;
>>> }
>>>
>>>
>>> Histogram output in bash:
>>>
>>> [...]
>>> *INFO    [ModuleContainer (KernelRootContainer)] Connecting Data
>>> Module:out with HistogramView:Input dataset #0
>>> *INFO    [HistogramView] Recalculating histogram.
>>> Exception thrown! Callstack's backtrace:
>>> trace: WException::WException(std::exception const&)    ->   
>>> lib/libopenwalnut.so.1(_ZN10WExceptionC1ERKSt9exception+0x135)
>>> [0x7ff3457e6715]
>>> trace: WThreadedRunner::threadMainSave()    ->   
>>> lib/libopenwalnut.so.1(_ZN15WThreadedRunner14threadMainSaveEv+0xba)
>>> [0x7ff34581b00a]
>>> trace: boost::detail::thread_data<boost::function<void ()> >::run()   
>>> ->   
>>> lib/libopenwalnut.so.1(_ZN5boost6detail11thread_dataINS_8functionIFvvEEEE3runEv+0x1e)
>>> [0x7ff34581d98e]
>>> trace: thread_proxy()    ->   
>>> /usr/lib/libboost_thread.so.1.46.1(thread_proxy+0x69) [0x7ff341f19ba9]
>>> trace: ()    ->    /usr/lib/nvidia-current-updates/libGL.so.1(+0xa7354)
>>> [0x7ff33f197354]
>>>
>>> *ERROR   [KernelRootContainer] Error in module "HistogramView".
>>> Forwarding to nesting container.
>>> *INFO    [ModuleContainer (KernelRootContainer)] Disconnecting Data
>>> Module:out from HistogramView:Input dataset #0
>>> *ERROR   [Module (HistogramView)] WException. Notifying. Message:
>>> vector::_M_range_check
>>>
>>>
>>> _______________________________________________
>>> OpenWalnut-Dev mailing list
>>> OpenWalnut-Dev at lists.informatik.uni-leipzig.de
>>> http://lists.informatik.uni-leipzig.de/mailman/listinfo/openwalnut-dev
>>>
>>> Archive: http://lists.informatik.uni-leipzig.de/pipermail/openwalnut-dev/
>>
>>
>> _______________________________________________
>> OpenWalnut-Dev mailing list
>> OpenWalnut-Dev at lists.informatik.uni-leipzig.de
>> http://lists.informatik.uni-leipzig.de/mailman/listinfo/openwalnut-dev
>>
>> Archive: http://lists.informatik.uni-leipzig.de/pipermail/openwalnut-dev/
> 
> 
> _______________________________________________
> OpenWalnut-Dev mailing list
> OpenWalnut-Dev at lists.informatik.uni-leipzig.de
> http://lists.informatik.uni-leipzig.de/mailman/listinfo/openwalnut-dev
> 
> Archive: http://lists.informatik.uni-leipzig.de/pipermail/openwalnut-dev/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: snapshot.jpg
Type: image/jpeg
Size: 169648 bytes
Desc: not available
URL: <http://lists.informatik.uni-leipzig.de/pipermail/openwalnut-dev/attachments/20120514/4f7c94f7/attachment-0002.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: snapshot2.jpg
Type: image/jpeg
Size: 114029 bytes
Desc: not available
URL: <http://lists.informatik.uni-leipzig.de/pipermail/openwalnut-dev/attachments/20120514/4f7c94f7/attachment-0003.jpg>


More information about the OpenWalnut-Dev mailing list