<html><head><base href="x-msg://77/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hello Kana,<div><br></div><div>I would strongly not recommend not taking this approach. It is rather inefficient, and version 3.20 has a bug related to this method.</div><div><br></div><div>I have an alternative implementation with exploits the separability of the convolution by a derivative. Simply, I implemented a discrete Hessian filter where a Gaussian convolution can occur as a prior filter. I hopefully will be able to get this to a sharable state this week.</div><div><br></div><div>Brad</div><div><br></div><div><br></div><div><br><div><div>On Mar 21, 2011, at 10:35 AM, Arunachalam Kana wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div lang="DE-AT" link="blue" vlink="purple"><div class="WordSection1" style="page: WordSection1; "><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Vera,<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you for the information that the recursive Gaussian cannot be streamed.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Masslawi,<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">I have not tried the release version , i will surely try it.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">I decided to use discretehessiancalculation for calculation of hessian matrix. I thought of increasing the speed by multithreading in my own filter.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">My filter takes 1 input image and gives 1 output image. So i calculate the hessian for each voxel.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">The problem: My program breaks due to the following error.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">ERROR MESSAGE:<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">Windows has triggered a breakpoint in iAnalyseGUI.exe.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">This may be due to a corruption of the heap, which indicates a bug in iAnalyseGUI.exe or any of the DLLs it has loaded.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">This may also be due to the user pressing F12 while iAnalyseGUI.exe has focus.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">The output window may have more diagnostic information.</span><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">The breakage happens when the 3rd thread starts, and in DiscreteHessianGaussianImageFunction.txx line 116.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">I need some help in solving the heap problem.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">And finally the question comes to whether is it possible to multithread the DiscreteHessianGaussianImageFunction.txx ?????<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">As i have to work with large size data, i really need it, so if i can find the code somewhere please direct me or i would need some help to<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Multithread the DiscreteHessianGaussianImageFunction.txx.<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">//code<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">template<class TInputImageType, class TOutputImageType><o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">void MYFilter<TInputImageType, TOutputImageType><o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId)<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">{<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: 35.4pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> typename OutputImageType::Pointer output = this->GetOutput();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: 35.4pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> typename InputImageType::ConstPointer input = this->GetInput();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //set hessian function<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: 35.4pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">m_HessianFunction = HessianFunctionType::New();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetInputImage(m_GradientMagnitudeImage );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetSigma( 1 );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetMaximumError( 0.01 );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetMaximumKernelWidth( 32 );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetNormalizeAcrossScale( 1 );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetUseImageSpacing( false );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->Initialize( );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> <o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //initiate iamge iterators<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputImageRegionIteratorType inIter(m_InputImage, outputRegionForThread);<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> OutputImageRegionIteratorType outIter(m_OutputImage, outputRegionForThread);<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> inIter.GoToBegin();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> while ( !inIter.IsAtEnd() )<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> {<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputIndexType currentindex =inIter.GetIndex();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputPixelType currentpixel = inIter.Get();<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> <o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //initialise the variables<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> HessianFunctionType::TensorType hess_matrix;<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> hess_matrix = m_HessianFunction->EvaluateAtIndex( currentindex );<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> <o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> ++inIter; <o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> }//while<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">}<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you,<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Regards,<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Kana<o:p></o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding-top: 3pt; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; "><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><b><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif; "><span class="Apple-converted-space"> </span>Dawood Masslawi [mailto:davoud_zzz@yahoo.com]<span class="Apple-converted-space"> </span><br><b>Sent:</b><span class="Apple-converted-space"> </span>19 March 2011 14:48<br><b>To:</b><span class="Apple-converted-space"> </span>Arunachalam Kana<br><b>Cc:</b><span class="Apple-converted-space"> </span><a href="mailto:insight-users@itk.org" style="color: blue; text-decoration: underline; ">insight-users@itk.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>RE: Memory management<o:p></o:p></span></div></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span lang="EN-GB"><o:p> </o:p></span></div><table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding-top: 0cm; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; "><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">Hi Kana,<o:p></o:p></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">Have you tried to build in release mode? It can make a big difference.<o:p></o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">Good luck,<o:p></o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">Dawood<o:p></o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o:p> </o:p></div></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Hi ITK Users,<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> I need some advice on memory management and speed.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> My system details: 64 bit windowsXP system and 4Gb RAM.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> My goal: To obtain eigen vectors for 100Mb unsigned short image. Eigen<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> vectors not for the whole image but for certain regions (approx occupies 40%<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> of image).<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> I have to do some preprocessing too.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> The pipeline is :<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Original image -> discretegaussian -> gradientmagnitude -><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> HessianRecursiveGaussianImageFilter->symmetric eigenvalue analysis -><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> finally 3 vector image<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> For the above pipeline for a 100Mb image, i am running out of RAM.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> After reading itkmails, i decided to use streamfilter to stream part of the<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> image so that the RAM usage is low. I only tested half way and the RAM was<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> overloaded.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> I am using streamimagefilter to reduce the memory usage. After calculation<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> of gradientmagnitude i have used 1.08Gb RAM. After this i need 1.2Gb RAM<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> For hessianimageoutput, so by using streamfilter i thought i would be<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> reaching 2.5Gm RAM but i reach approx 6Gb(virtual memory is used).<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 1. Am i doing something wrong with the stream filter ? (code given<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> below)<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 2. I tried another option: As i do not need hessian for the whole<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> image, I used discretehessianfunction for hessian calculation but it is 30<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> times slower that the recursivehessian. Is discretegaussianimagefunction<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> multithreaded?<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 3. Is there any other way to achieve speed vs RAM compromised<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> solution?<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 4. The 100Mb data set is test data. The real data is 10Gb for which<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> i will use 64 bit linux system (opensuse 11.2) . will the pipeline be<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> executed in linux too?<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Below is my code and after application of filter show the RAM usage:<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> char *infilename = "StreamTest.mhd";<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::CovariantVector<float,3> VectorPixelType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::Vector< VectorPixelType, 3 > EV_PixelType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> //Image type<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::Image<unsigned short, 3> InputImageType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::Image<float, 3> FloatImageType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> itk::Image<EV_PixelType,3><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> EVImageType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> **** RAM usage = 674Mb****<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> //reader initialisation and reading file<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::ImageFileReader<InputImageType><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> ReaderType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> ReaderType::Pointer reader = ReaderType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> reader->SetFileName( infilename );<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> reader->Update();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> InputImageType::Pointer inImage = reader->GetOutput();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> **** RAM usage = 783Mb****<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::DiscreteGaussianImageFilter<InputImageType, FloatImageType><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> RGIFType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> RGIFType::Pointer gaussfilter = RGIFType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gaussfilter->SetInput(inImage);<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gaussfilter->SetVariance(4.0);<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gaussfilter->SetMaximumError(0.01);<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::CastImageFilter<FloatImageType,InputImageType> CIFType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> CIFType::Pointer castfilter = CIFType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> castfilter->SetInput(gaussfilter->GetOutput());<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::GradientMagnitudeImageFilter<InputImageType,FloatImageType><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> GMIFType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> GMIFType::Pointer gmfilter = GMIFType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gmfilter->SetInput(castfilter->GetOutput());<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gmfilter->Update();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> FloatImageType::Pointer gmImage = gmfilter->GetOutput();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> **** RAM usage = 1290Mb****<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> gaussfilter->UnRegister();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> castfilter->UnRegister();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> **** RAM usage = 1080Mb****<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::HessianRecursiveGaussianImageFilter<FloatImageType><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> HessianRecursiveGaussianFilterType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef HessianRecursiveGaussianFilterType::OutputImageType<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> HessianImageType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> HessianRecursiveGaussianFilterType::Pointer hessianfilter =<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> HessianRecursiveGaussianFilterType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> hessianfilter->SetInput(gmImage);<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> hessianfilter->SetSigma(1);<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> typedef itk::StreamingImageFilter<HessianImageType,HessianImageType><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> StreamerType;<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> StreamerType::Pointer streamer = StreamerType::New();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> streamer->SetInput( hessianfilter->GetOutput() );<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> streamer->SetNumberOfStreamDivisions( 20 );<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> streamer->Update();<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> **** RAM usage = 3600Mb**** after few seconds it came to **** RAM usage =<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 6120Mb****<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Thank you in advance.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Regards,<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Kana Arunachalam Kannappan<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Research Associate<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> FH OÖ Forschungs & Entwicklungs GmbH<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Stelzhamer Strasse 23,<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> 4600 Wels,<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Austria.<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> Phone: +43 (0)7242 72811 -4420<o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> <a href="http://www.itk.org/mailman/listinfo/insight-users" style="color: blue; text-decoration: underline; ">kana.arunachalam at fh-wels.at</a><o:p></o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i><o:p> </o:p></i></pre><pre style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 10pt; font-family: 'Courier New'; ">><i> <a href="http://www.fh-ooe.at" style="color: blue; text-decoration: underline; ">www.fh-ooe.at</a>; <a href="http://www.3dct.at" style="color: blue; text-decoration: underline; ">www.3dct.at</a></i><o:p></o:p></pre></div></td></tr></tbody></table><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 10pt; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div></div><span><ATT00001..txt></span></div></span></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">========================================================</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Bradley Lowekamp<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font class="Apple-style-span" face="Arial"><span class="Apple-style-span" style="font-family: Arial; "><span class="Apple-style-span" style="font-family: Arial; ">Lockheed Martin </span></span></font><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Contractor for</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Office of High Performance Computing and Communications</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">National Library of Medicine<span class="Apple-converted-space"> </span></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica"><a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a></font></p><br class="Apple-interchange-newline"></span></span>
</div>
<br></div></body></html>