Dear Peter,
Many thanks for the update and the detailed answers.

I just wanted to inform you that my .fib data isn't uploaded on the
executable that posted in site.
I tried:
64 bit on XP and 32 bit on Win7
both of them are existed while the image is trying to be uploaded.

I ran the density algorithm with the testing data from the site on 32 Win7
and got an image which its dimensions are twice the size of the reference
image (because the up sampling, of course).
because my algorithm runs several iterators on different images, its
dimensions aren't suitable for my purpose.
* do you have any idea how I can get the same dimensions as the reference
image?
* do you think that process of downsampling decrease the quality of the
output density image?


Best Regards,
Hila


On Fri, Mar 23, 2012 at 11:10 AM, Peter Neher <[email protected]>wrote:

>  Dear Hila,
>
> I could not reproduce the bug on Linux, but a colleague of mine is going
> to look into this next week.
>
> Regarding your first question, the code you pasted here is realizing the
> trilinear interpolation for the current position.
>
> Regarding your second issue, I'm not sure waht your are trying to do. You
> got an image (T1) and you want the TDI to be of the same size etc.? This
> should be accomplished by selceting the T1 as reference image. If you don't
> select the reference image, the fiber bundle geometry is used for the
> output image.
> If you want the output image to have the same geometry as your T1 iamge,
> no code change should be necessary.
>
> Best
> Peter
>
>
> On 22.03.2012 11:08, Hila Hiler wrote:
>
> Hi Peter,
> The error was reported <http://bugs.mitk.org/show_bug.cgi?id=11289>.
>
> If you don't mind, one more question regarding the algorithm:
> would you please explain this section (that was taken from your code)?
>
> utImageBufferPointer[( px   + w*(py  + h*pz  ))] += (  frac_x)*(
> frac_y)*(  frac_z);
>           outImageBufferPointer[( px   + w*(py+1+ h*pz  ))] += (
> frac_x)*(1-frac_y)*(  frac_z);
>           outImageBufferPointer[( px   + w*(py  + h*pz+h))] += (
> frac_x)*(  frac_y)*(1-frac_z);
>           outImageBufferPointer[( px   + w*(py+1+ h*pz+h))] += (
> frac_x)*(1-frac_y)*(1-frac_z);
>           outImageBufferPointer[( px+1 + w*(py  + h*pz  ))] +=
> (1-frac_x)*(  frac_y)*(  frac_z);
>           outImageBufferPointer[( px+1 + w*(py  + h*pz+h))] +=
> (1-frac_x)*(  frac_y)*(1-frac_z);
>           outImageBufferPointer[( px+1 + w*(py+1+ h*pz  ))] +=
> (1-frac_x)*(1-frac_y)*(  frac_z);
>           outImageBufferPointer[( px+1 + w*(py+1+ h*pz+h))] +=
> (1-frac_x)*(1-frac_y)*(1-frac_z);
>
> Second, regarding the code manipulation:
> I got an intensity image by inserting just the .fib file (without the
> m_selected_Image (that I assume generates an output image due to its size,
> origin etc.). But the output image isn't as my required size (which is
> obious because no reference image was insereted).
> so I tried to  remove these lines:
>       upsampledRegion.SetSize(0,
> geometry->GetExtent(0)*m_UpsamplingFactor);
>       upsampledRegion.SetSize(1,
> geometry->GetExtent(1)*m_UpsamplingFactor);
>       upsampledRegion.SetSize(2,
> geometry->GetExtent(2)*m_UpsamplingFactor);
> with these:
> upsampledRegion = m_InputImage->GetLargestPossibleRegion();
> typename OutputImageType::RegionType::SizeType size =
> upsampledRegion.GetSize();
>       size[0] *= m_UpsamplingFactor;
>       size[1] *= m_UpsamplingFactor;
>       size[2] *= m_UpsamplingFactor;
>       upsampledRegion.SetSize(size);
>
> and insert the reference image which is aligned with the fibers data
> (actually it's T1_no_Gad)
> but I got the attached error.
> I'd to mention that if no image is selected, and the following code is run,
> * the output image is correct*! but its dimensions are a problem (in
> order to run my code, I need the same dimensions as the T1_no_Gad because I
> run in parallel iterators on several images).
>
> * do you have any idea how I can change the size of that output image?
>
> The code:
>       newSpacing = geometry->GetSpacing()/m_UpsamplingFactor;
>       newOrigin = geometry->GetOrigin();
>       mitk::Geometry3D::BoundsArrayType bounds = geometry->GetBounds();
>       newOrigin[0] += bounds.GetElement(0);
>       newOrigin[1] += bounds.GetElement(2);
>       newOrigin[2] += bounds.GetElement(4);
>
>       for (int i=0; i<3; i++)
>         for (int j=0; j<3; j++)
>           newDirection[j][i] = geometry->GetMatrixColumn(i)[j];
>       upsampledRegion.SetSize(0,
> geometry->GetExtent(0)*m_UpsamplingFactor);
>       upsampledRegion.SetSize(1,
> geometry->GetExtent(1)*m_UpsamplingFactor);
>       upsampledRegion.SetSize(2,
> geometry->GetExtent(2)*m_UpsamplingFactor);
>
>
> Many Thanks!
>
> Hila
>
> On Thu, Mar 22, 2012 at 10:36 AM, Peter Neher 
> <[email protected]>wrote:
>
>>  Hi Hila,
>>
>> we use the upsampling to ensure that no voxel that is crossed by a fiber
>> is left out. This might happen if the distance between two points on the
>> fiber is too large. And as said in my previous email, the filter does not
>> calculate the number of fibers per voxel. But if desired it could easily be
>> redesigned to do so. Just visit each voxel only once per fiber and skip the
>> normalization step.
>>
>> Regarding the runtime error you encountered, could you ad a bug to our
>> bugtracker and upload the according .fib needed to reproduce the bug? I
>> will have a look at it in the next couple of days.
>>
>> Best
>> Peter
>>
>>
>> On 21.03.2012 10:58, Hila Hiler wrote:
>>
>> In addition,
>>
>> I investigated the code of itkTractDensityImageFilter and wondered :
>> why is the up-sampling necessary ? I guess that the connection between
>> density and upsampling isn't comprehensible for me. and however, how is the
>> sampling correlated to your algorithm description (that measures number of
>> fibers per a voxel)?
>>
>> any information or links to data sources would be very helpful.
>>
>> Best,
>> Hila
>>
>> On Tue, Mar 20, 2012 at 10:45 AM, Hila Hiler <[email protected]> wrote:
>>
>>> I'm starting to wonder whether the data of fibers that inserted is
>>> incorrect, although I generated the .fib file as suggested.
>>>
>>> And the bar "fiber bundle statistics" presents:
>>> fibers
>>>
>>> Number of fibers: 10000
>>>
>>> Mean fiber length: 7.01857cm
>>>
>>> Median fiber length: 6.93052cm
>>>
>>> Standard deviation: 5.39865cm
>>>
>>>
>>>  But still I got that run time error that is illustrated in the
>>> attached file.
>>>
>>> now I can't do nothing with this module because the same error
>>> represented in each application...
>>>
>>>
>>>  What's the reason for this?
>>>
>>>
>>>  Regards,
>>>
>>> Hila
>>>
>>>
>>>  On Mon, Mar 19, 2012 at 10:44 AM, Hila Hiler <[email protected]>wrote:
>>>
>>>> Thank you Peter.
>>>>
>>>> I tried to use the GUI in order to generate a density image but I
>>>> encountered with a run time error that indicates about an access violation
>>>> reading location in:
>>>>
>>>> vtkIdType GetNumberOfPoints() {return this->Data->GetNumberOfTuples();}
>>>>
>>>> any ideas?
>>>>
>>>>
>>>> On Sun, Mar 18, 2012 at 10:24 AM, Peter Neher <
>>>> [email protected]> wrote:
>>>>
>>>>>  Dear Hila,
>>>>>
>>>>> we basically walk along the fiber and increase the grey value of each
>>>>> encountered voxel. Afterwards everything is normalized to one. So you 
>>>>> don't
>>>>> get absolute values how many fibers are passing each voxel but an 
>>>>> indicator
>>>>> of where are many and where are only few fibers in the image.
>>>>>
>>>>> The filter is called in
>>>>> QmitkFiberProcessingView::GenerateTractDensityImage so you can use that as
>>>>> a reference. The simplest example would be the following:
>>>>>
>>>>> itk::TractDensityImageFilter< float >::Pointer generator =
>>>>> itk::TractDensityImageFilter< float >::New();
>>>>> generator->SetFiberBundle(fib);
>>>>> generator->Update();
>>>>>
>>>>> where fib is a mitk::FiberBundleX::Pointer.
>>>>>
>>>>> Best
>>>>> Peter
>>>>>
>>>>>
>>>>> On 16.03.2012 18:28, Hila Hiler wrote:
>>>>>
>>>>> Thank you!
>>>>>
>>>>> would you please explain :
>>>>>    - how this filter works (a brief description of the algorithm) ?
>>>>>    - example of how to use this filter ? (which inputs to insert, how
>>>>> to get the output ...)
>>>>>
>>>>> many thanks in advance ...
>>>>>
>>>>> Best,
>>>>> Hila
>>>>>
>>>>>
>>>>> On Thu, Mar 15, 2012 at 6:32 PM, Peter Neher <
>>>>> [email protected]> wrote:
>>>>>
>>>>>>  Actually I recently changed the name to
>>>>>> itk::TractDensityImageFilter.
>>>>>>
>>>>>> On 15.03.2012 13:20, Fritzsche, Klaus H. wrote:
>>>>>>
>>>>>>  Dear Hila,
>>>>>>
>>>>>>
>>>>>>
>>>>>> die you see the itk::TractsToProbabilityImageFilter in
>>>>>> Modules/DiffusionImaging/Algorithms?
>>>>>>
>>>>>>
>>>>>>
>>>>>> Best
>>>>>>
>>>>>> Klaus
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Von:* Hila Hiler [mailto:[email protected] <[email protected]>]
>>>>>> *Gesendet:* Donnerstag, 15. März 2012 12:54
>>>>>> *An:* Neher, Peter
>>>>>> *Cc:* [email protected]
>>>>>> *Betreff:* [mitk-users] Fwd: need advice: measurement of density of
>>>>>> fibers
>>>>>>
>>>>>>
>>>>>>
>>>>>> Dear Peter, Mitk's users
>>>>>>
>>>>>> Would you please consider my question?
>>>>>> any ideas/thoughts would be very appreciated!
>>>>>>
>>>>>> It's obvious that the density equation is:
>>>>>> [samples/volume]*[samples/fiber]
>>>>>>
>>>>>> but I'm afraid it's not the right aspect to this challenge.
>>>>>>
>>>>>> maybe the bundle color’s gradients can provide any helpful details?
>>>>>>
>>>>>>
>>>>>> Best,
>>>>>> Hila
>>>>>>
>>>>>>
>>>>>>  ---------- Forwarded message ----------
>>>>>> From: *Hila Hiler* <[email protected]>
>>>>>> Date: Sat, Mar 10, 2012 at 10:10 PM
>>>>>> Subject: need advice: measurement of density of fibers
>>>>>> To: [email protected]
>>>>>>
>>>>>>  Hi all,
>>>>>>
>>>>>> How I can calculate the fibers density from a .fib/.vtk 3d image ?
>>>>>> I thought to calculate it along it's direction of longitude.
>>>>>> maybe I should consider to calculate the number of fibers which are
>>>>>> crossing an orthogonal plane?
>>>>>>
>>>>>> another q: how  I can achieve the gradient value which is represented
>>>>>> as a color on the .fib file?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>   --
>>>>> Dipl.-Inform. Peter Neher
>>>>> German Cancer Research Centre
>>>>> (DKFZ, Deutsches Krebsforschungszentrum in der Helmholtz-Gemeinschaft, 
>>>>> Stiftung des öffentlichen Rechts)
>>>>> Division of Medical and Biological Informatics
>>>>> Im Neuenheimer Feld 280, D-69120 Heidelberg
>>>>>
>>>>> Phone: 49-(0)6221-42-3552, Fax: 49-(0)6221-42-2345
>>>>> E-Mail: [email protected], Web: www.dkfz.de
>>>>>
>>>>> The information contained in this message may be confidential and legally 
>>>>> protected under applicable law. The message is intended solely for the 
>>>>> addressee(s). If you are not the intended recipient, you are hereby 
>>>>> notified that any use, forwarding, dissemination, or reproduction of this 
>>>>> message is strictly prohibited and may be unlawful. If you are not the 
>>>>> intended recipient, please contact the sender by return e-mail and 
>>>>> destroy all copies of the original message.
>>>>>
>>>>>
>>>>
>>>
>>
>> --
>> Dipl.-Inform. Peter Neher
>> German Cancer Research Centre
>> (DKFZ, Deutsches Krebsforschungszentrum in der Helmholtz-Gemeinschaft, 
>> Stiftung des öffentlichen Rechts)
>> Division of Medical and Biological Informatics
>> Im Neuenheimer Feld 280, D-69120 Heidelberg
>>
>> Phone: 49-(0)6221-42-3552, Fax: 49-(0)6221-42-2345
>> E-Mail: [email protected], Web: www.dkfz.de
>>
>> The information contained in this message may be confidential and legally 
>> protected under applicable law. The message is intended solely for the 
>> addressee(s). If you are not the intended recipient, you are hereby notified 
>> that any use, forwarding, dissemination, or reproduction of this message is 
>> strictly prohibited and may be unlawful. If you are not the intended 
>> recipient, please contact the sender by return e-mail and destroy all copies 
>> of the original message.
>>
>>
>
> --
> Dipl.-Inform. Peter Neher
> German Cancer Research Centre
> (DKFZ, Deutsches Krebsforschungszentrum in der Helmholtz-Gemeinschaft, 
> Stiftung des öffentlichen Rechts)
> Division of Medical and Biological Informatics
> Im Neuenheimer Feld 280, D-69120 Heidelberg
>
> Phone: 49-(0)6221-42-3552, Fax: 49-(0)6221-42-2345
> E-Mail: [email protected], Web: www.dkfz.de
>
> The information contained in this message may be confidential and legally 
> protected under applicable law. The message is intended solely for the 
> addressee(s). If you are not the intended recipient, you are hereby notified 
> that any use, forwarding, dissemination, or reproduction of this message is 
> strictly prohibited and may be unlawful. If you are not the intended 
> recipient, please contact the sender by return e-mail and destroy all copies 
> of the original message.
>
>
>
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> mitk-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mitk-users
>
>
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to