<html><head><base href="x-msg://77/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Kana,<div><br></div><div>The RecursiveGaussianImageFilter is multithreaded, but not streamable. The linked HessianImageFilter is both multithreaded and streamable. It's not clear to me how you were going to use the image functions. If you were planning on computing the hessian on much of the image then the image function would be horrible inefficient. </div><div><br></div><div>Going back to your original e-mail you said your pipeline was as follows:</div><div><br></div><div>Original image -> discretegaussian -> gradientmagnitude -> HessianRecursiveGaussianImageFilter->symmetric eigenvalue analysis -> finally 3 vector image</div><div><br></div><div>If you add the StreamingImageFilter to the end of the pipeline, I would expect the pipeline to stream and be relatively memory efficient.</div><div><br></div><div>Good luck,</div><div>Brad</div><div><br><div><div>On Mar 29, 2011, at 5:28 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" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div class="WordSection1" style="page: WordSection1; "><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Brad,<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you for your reply. As recommended by you, I will use the itkHessianImageFilter to calculate the hessian. I see the filter is multithreaded which<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Was not available before, so i think it will be faster than before. On the other hand the itkHessianImageFilter calculates an output image, which i think<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Will drastically increase the use of RAM compared to the itkDiscreteHessianGaussianImagefunction.h. Am i right?<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">However, I will have to test for the speed and for the memory usage.<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you for the filter.<o:p></o:p></span></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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><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-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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>Bradley Lowekamp [mailto:blowekamp@mail.nih.gov]<span class="Apple-converted-space"> </span><br><b>Sent:</b><span class="Apple-converted-space"> </span>29 March 2011 06:42<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: [Insight-users] Memory management<o:p></o:p></span></div></div></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Hello Kana,<o:p></o:p></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Sorry for the delay in getting this out there. I have placed what I have been working on github:<o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><a href="https://github.com/blowekamp/itkLocalDiscreteHessian" style="color: blue; text-decoration: underline; ">https://github.com/blowekamp/itkLocalDiscreteHessian</a><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">The itkHessianDiscreteGaussianimageFilter is not yet implemented, and I still need to migrate more testing over to the github module. <o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">I would recommend just coping over itkHessianImageFilter into your project, writing some test to make yourself confident that it's computing the correctly, then keep an eye on the github repository. <o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Good luck,<o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Brad<o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><o:p> </o:p></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">On Mar 21, 2011, at 12:20 PM, Arunachalam Kana wrote:<o:p></o:p></div></div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><br><br><o:p></o:p></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Brad,</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you for the reply.</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">In brief : My goal is to calculate the eigen vectors using eigenanalysisfunction.</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Calculation of hessian with recursivegaussian occupy 12times more memory. discretegaussian is 30 times slower and not multithreaded.</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">My image is 10Gb and my ram is 64Gb too.</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you for the advice and for the information that you are already working on it. I will wait for the code.</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you,</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Regards,</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Kana</span><o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div><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; padding-top: 3pt; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; border-width: initial; border-color: initial; "><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><b><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span class="apple-converted-space"><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif; "> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: Tahoma, sans-serif; ">Bradley Lowekamp [mailto:blowekamp@mail.nih.gov]<span class="apple-converted-space"> </span><br><b>Sent:</b><span class="apple-converted-space"> </span>21 March 2011 17:03<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: [Insight-users] Memory management</span><o:p></o:p></div></div></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Hello Kana,<o:p></o:p></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">I would strongly not recommend not taking this approach. It is rather inefficient, and version 3.20 has a bug related to this method.<o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">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.<o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">Brad<o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "> <o:p></o:p></div></div><div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; ">On Mar 21, 2011, at 10:35 AM, Arunachalam Kana wrote:<o:p></o:p></div></div></div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><br><br><br><o:p></o:p></div></div><div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Vera,</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Hi Masslawi,</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">ERROR MESSAGE:</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">Windows has triggered a breakpoint in iAnalyseGUI.exe.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">The output window may have more diagnostic information.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: red; ">I need some help in solving the heap problem.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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 ?????</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><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</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Multithread the DiscreteHessianGaussianImageFunction.txx.</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">//code</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">template<class TInputImageType, class TOutputImageType></span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">void MYFilter<TInputImageType, TOutputImageType></span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId)</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">{</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; 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();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; 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();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //set hessian function</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; text-indent: 35.4pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">m_HessianFunction = HessianFunctionType::New();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetInputImage(m_GradientMagnitudeImage );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetSigma( 1 );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetMaximumError( 0.01 );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetMaximumKernelWidth( 32 );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetNormalizeAcrossScale( 1 );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->SetUseImageSpacing( false );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> m_HessianFunction->Initialize( );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //initiate iamge iterators</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputImageRegionIteratorType inIter(m_InputImage, outputRegionForThread);</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> OutputImageRegionIteratorType outIter(m_OutputImage, outputRegionForThread);</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> inIter.GoToBegin();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> while ( !inIter.IsAtEnd() )</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> {</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputIndexType currentindex =inIter.GetIndex();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> InputPixelType currentpixel = inIter.Get();</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> //initialise the variables</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> HessianFunctionType::TensorType hess_matrix;</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> hess_matrix = m_HessianFunction->EvaluateAtIndex( currentindex );</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> ++inIter; </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "> }//while</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">}</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Thank you,</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Regards,</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Kana</span><o:p></o:p></div></div></div><div><div><div style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; margin-top: 0cm; margin-bottom: 0.0001pt; "><span lang="EN-GB" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> <br></span><o:p></o:p></div></div></div></div></div></div></div></div></div></div></span></blockquote></div><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>