<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV>Dear Luis:</DIV>
<DIV>&nbsp;</DIV>
<DIV>Thanks for your reply and introduce me the new statistic framework.</DIV>
<DIV>/</DIV>
<DIV>/The actual classification code was conditioned to the<BR>&nbsp; //&nbsp; &nbsp; value of "acumulate1".&nbsp; Why was such thing needed ?<BR></DIV>
<DIV>I have several reasons to condition the classification.</DIV>
<DIV>1: The input data is skull stripped brain images. So I do not want to use the EM to classifiy the background voxes for saving computation time (please correct me if I am wrong. To me, EM will go though all the voxel, so I believe it will take long time if I tried to classify the background) and also for the performance of accuracy of the EM.</DIV>
<DIV>2: The lesion or tumor may need other methods to classify before EM. So I give some condition to avoid repeated work on the classified voxels. (One of my&nbsp;senior told me that lesion can not be classified by EM, is that ture?)</DIV>
<DIV>&nbsp;</DIV>
<DIV>//Indeed, when you are using the Gaussian mixture modeling estimator,<BR>//the classification stage you should do it by using the<BR>//itkSampleClassifier class.</DIV>
<DIV>&nbsp;</DIV>
<DIV>And also I do tried to the itkSampleClassifier for classification. But got same result with I make decision by itkGaussianDensityFunction-&gt;Evaluate.. Since both need&nbsp;me to&nbsp;initialize the itkGaussianDensityFunction.. My impression is that I did not set mean and coviarance properly. Althour I print out the mean and covriance by -&gt;GetMean() and -&gt;GetCovariance().</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt;*(membershipFunctions[i]-&gt;GetMean()+0)&lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "&nbsp; Gaussian Covariance ";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; *(membershipFunctions[i]-&gt;GetCovariance()+0) &lt;&lt; std::endl;<BR></DIV>
<DIV>&nbsp;</DIV>
<DIV>After debugging, seems to me that the mean or covirance are actuall given some non-sense number because the pdf I got is extremly small 10^(-7-10). And the CSF class alway have biggest pdf aroun 10^-7 even I forced the measurement vector to be&nbsp;very close (less than 0.5) to mean of other cluster.<BR></DIV>
<DIV>Thanks and my best regards</DIV>
<DIV>&nbsp;</DIV>
<DIV>Baoyun<BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face=Tahoma size=2>
<HR SIZE=1>
<B><SPAN style="FONT-WEIGHT: bold">From:</SPAN></B> Luis Ibanez &lt;luis.ibanez@kitware.com&gt;<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Baoyun Li &lt;baoyun_li123@yahoo.com&gt;<BR><B><SPAN style="FONT-WEIGHT: bold">Cc:</SPAN></B> insight-users@itk.org<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Tuesday, March 17, 2009 5:29:13 PM<BR><B><SPAN style="FONT-WEIGHT: bold">Subject:</SPAN></B> Re: problem solved--- cannot get proper classification using itk:GaussianDensityFunction after EM clustering<BR></FONT><BR>Hi Baoyun,<BR><BR>Thanks for letting us know that you found the solution to the problem.<BR><BR>Indeed, when you are using the Gaussian mixture modeling estimator,<BR>the classification stage you should do it by using the<BR>itkSampleClassifier class.<BR><BR>The code that you posted in your previous email, is basically what<BR>the classifier contains inside, but with the added flexibility of<BR>being reusable and allowing for
 different types of decision rules.<BR><BR>Looking at your previous code in its current form, it is hard to<BR>tell what was going wrong.<BR><BR>However, some suspicious elements are:<BR><BR><BR>&nbsp; A) OutputPixelType classlabel;<BR>&nbsp; &nbsp; &nbsp; is uninitialized by the time you start iterating over pixels.<BR><BR>&nbsp; B) The actual classification code was conditioned to the<BR>&nbsp; &nbsp; &nbsp; value of "acumulate1".&nbsp; Why was such thing needed ?<BR><BR><BR>A simple way to find the problem in your code, will be to recompile<BR>it with a higher settings of warnings (e.g. -Wall if you use gcc).<BR><BR>Chances are that the culprit of the problem is already begin flagged<BR>out by the compiler.<BR><BR><BR>BTW: You may find interesting to start using the new Statistics<BR>&nbsp; &nbsp; Framework, that is available at:<BR><BR>http://www.na-mic.org/svn/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring/<BR><BR>&nbsp; &nbsp; You will find a
 description of what was changed (and why)<BR>&nbsp; &nbsp; in the following wiki pages:<BR><BR>http://www.itk.org/Wiki/Proposals:Refactoring_Statistics_Framework_2007<BR><BR><BR><BR><BR>&nbsp; &nbsp; Regards,<BR><BR><BR>&nbsp; &nbsp; &nbsp; Luis<BR><BR><BR>------------------<BR>Baoyun Li wrote:<BR>&gt; Dear All:<BR>&gt;&nbsp; I just figure out the problem. I need to use itk::GaussianMixtureModelComponent-&gt;Evaluate to make decision. The result is ok.<BR>&gt;&nbsp; but i am still not clear what happened if I used itk::GaussianDensityFunction-&gt;Evaluate() to get decision. Maybe I did not use it properly. Still interested to know what happened.<BR>&gt;&nbsp; Can somebody tell me whether my code is wrong or I did not used itk::GaussianDensityFunction-&gt;Evaluate() properly?<BR>&gt;&nbsp; Thanks<BR>&gt;&nbsp; Baoyun<BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; *From:* Baoyun Li &lt;<A
 href="mailto:baoyun_li123@yahoo.com" ymailto="mailto:baoyun_li123@yahoo.com">baoyun_li123@yahoo.com</A>&gt;<BR>&gt; *To:* Luis Ibanez &lt;<A href="mailto:luis.ibanez@kitware.com" ymailto="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</A>&gt;<BR>&gt; *Cc:* <A href="mailto:insight-users@itk.org" ymailto="mailto:insight-users@itk.org">insight-users@itk.org</A><BR>&gt; *Sent:* Tuesday, March 17, 2009 12:24:04 PM<BR>&gt; *Subject:* cannot get proper classification using itk:GaussianDensityFunction after EM clustering<BR>&gt; <BR>&gt; Dear ALL:<BR>&gt;&nbsp; I am using EM gassian mixutrue estimator to estimate the mean and covariance of vector image. I first adapt the image to sample, and the EM works well.<BR>&gt; It produced mean value for Gray matter , whithe matter and CSF, the mean value looks ok to me.<BR>&gt;&nbsp; But when I try to assign the label to the image, I cannot get the proper labled image. I got the estimated all the voxle to the
 one class. And the pdf of GassianDensityFunction always have the biggest value for CSF, that should not happend.<BR>&gt;&nbsp; Below is part of my code.<BR>&gt;&nbsp; 1, I first get the pararameter of each component by : finalparameters=(components[i])-&gt;GetFullParameters();<BR>&gt; 2, Then I decompose the parameters to estimatedmean and estimatedcovariance<BR>&gt; 3,&nbsp; set the mean for GaussianDensityFunction by :&nbsp; membershipFunctions[i]-&gt;SetMean(&amp;estimatedmean );<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; membershipFunctions[i]-&gt;SetCovariance( &amp;estimatedcovariance);<BR>&gt;&nbsp; 4, In the lableing program, I used&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eveluateresult[i]=(membershipFunctions[i]-&gt;Evaluate(mv)) to get pdf for each class, mv is the measurement vector obtained of images by itk iterator<BR>&gt; 5, then I find the class with biggest pdf, assign the label .<BR>&gt;&nbsp; The code is listed below, can some
 body help me to find what is wrong.<BR>&gt;&nbsp; Thanks<BR>&gt;&nbsp; Baoyun<BR>&gt;&nbsp; ///////give the mean value and covariance to GaussianDensityFunction&nbsp; &nbsp; typedef itk::Statistics::GaussianDensityFunction&lt;ComponentType::MeasurementVectorType&nbsp; &gt; MembershipFunctionType;<BR>&gt;&nbsp; &nbsp; std::vector&lt; MembershipFunctionType::Pointer &gt; membershipFunctions(numberOfClasses);<BR>&gt;&nbsp; &nbsp; unsigned int paramIndex;<BR>&gt;&nbsp; &nbsp; ParametersType finalparameters((NumberOfComponents+1)*NumberOfComponents);<BR>&gt;&nbsp; &nbsp; typedef MembershipFunctionType::MeanType MeanType;<BR>&gt;&nbsp; &nbsp; typedef MembershipFunctionType::CovarianceType CovarianceType;<BR>&gt;&nbsp; &nbsp; MeanType estimatedmean(NumberOfComponents);<BR>&gt;&nbsp; &nbsp; CovarianceType estimatedcovariance;<BR>&gt;&nbsp; &nbsp; typedef ComponentType::MeasurementVectorSizeType MeasurementVectorSizeType;<BR>&gt;&nbsp; &nbsp;
 MeasurementVectorSizeType measurementVectorSize=NumberOfComponents;<BR>&gt;&nbsp; &nbsp; estimatedcovariance.SetSize( measurementVectorSize, measurementVectorSize );<BR>&gt;&nbsp; &nbsp; //estimatedmean.SetSize( measurementVectorSize, 1);<BR>&gt;&nbsp; // estimatedmean.Fill(0.0) ;<BR>&gt;&nbsp; &nbsp; for ( unsigned int i = 0 ; i &lt; numberOfClasses ; i++ )<BR>&gt;&nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; // membershipFunctions.push_back(MembershipFunctionType::New());<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; membershipFunctions[i]=MembershipFunctionType::New();<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; Size of Gaussian : ";<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; (membershipFunctions[i])-&gt;GetMeasurementVectorSize() &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 finalparameters=(components[i])-&gt;GetFullParameters();<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paramIndex=0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (unsigned int i1 = 0 ; i1 &lt; measurementVectorSize ; i1++)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; estimatedmean[i1] = finalparameters[paramIndex] ;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++paramIndex ;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; for (unsigned int i1 = 0 ; i1 &lt; measurementVectorSize ; i1++ )<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (unsigned int j1 = 0 ; j1 &lt; measurementVectorSize; j1++ )<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 estimatedcovariance.GetVnlMatrix().put(i1, j1, finalparameters[paramIndex]) ;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++paramIndex ;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; // finalProportions[i]=(*estimator-&gt;GetProportions())[i];<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "********************************" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "class[" &lt;&lt; i &lt;&lt; "]" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; Estimated Mean:" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; estimatedmean<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; Estimated Covariance ";<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; std::cout
 &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; estimatedcovariance &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; membershipFunctions[i]-&gt;SetMean(&amp;estimatedmean );<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; membershipFunctions[i]-&gt;SetCovariance( &amp;estimatedcovariance);<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "***************************" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "class[" &lt;&lt; i &lt;&lt; "]" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; Gaussain Mean:" &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt;*(membershipFunctions[i]-&gt;GetMean()+0)&lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; // std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt;*(membershipFunctions[i]-&gt;GetMean()+1)&lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp;
 std::cout &lt;&lt; "&nbsp; Gaussian Covariance ";<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; *(membershipFunctions[i]-&gt;GetCovariance()+0) &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; // std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; *(membershipFunctions[i]-&gt;GetCovariance()+1) &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; // std::cout &lt;&lt; "&nbsp; &nbsp; &nbsp; &nbsp; " &lt;&lt; *(membershipFunctions[i]-&gt;GetCovariance()+3) &lt;&lt; std::endl;<BR>&gt;&nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; /////to lable the image&nbsp; &nbsp; &nbsp; typedef unsigned char OutputPixelType;<BR>&gt;&nbsp; &nbsp; typedef itk::Image&lt; OutputPixelType, 3 &gt; OutputImageType;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; OutputImageType::Pointer outputPtr=reader1-&gt;GetOutput();<BR>&gt;&nbsp; &nbsp; typedef itk::ImageRegionIterator&lt; OutputImageType &gt;&nbsp; ImageIterator;<BR>&gt;&nbsp; &nbsp; &nbsp;
 typedef VectorImageType::RegionType RegionType;<BR>&gt;&nbsp; &nbsp; &nbsp; RegionType region = outputPtr-&gt;GetBufferedRegion();<BR>&gt; //<BR>&gt; //&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ImageIterator pixel( outputPtr, region );<BR>&gt;&nbsp; &nbsp; &nbsp; typedef itk::Vector&lt; double, numberOfClasses &gt; EvaluationVectorType;<BR>&gt;&nbsp; &nbsp; &nbsp; EvaluationVectorType eveluateresult;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //pixel.GoToBegin();<BR>&gt; //&nbsp; itk::Array&lt; double &gt; finalProportions(numberOfClasses);<BR>&gt;&nbsp; &nbsp; for(unsigned char i=0;i&lt;numberOfClasses;i++)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; finalProportions[i]=(*estimator-&gt;GetProportions())[i];<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; double maxvalue;<BR>&gt;&nbsp; &nbsp; OutputPixelType
 classlabel;<BR>&gt;&nbsp; &nbsp; for ( pixel.GoToBegin(),constIterator.GoToBegin(); !pixel.IsAtEnd(); ++pixel,++constIterator )<BR>&gt;&nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mv=constIterator.Get();<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; accumulate1=0;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; maxvalue=0;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for( unsigned int i=0;i&lt;NumberOfComponents;i++)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; accumulate1=accumulate1+mv[i];<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(accumulate1&gt;20)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(unsigned char i=0;i&lt;numberOfClasses;i++)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp; eveluateresult[i]=(membershipFunctions[i]-&gt;Evaluate(mv))*finalProportions[i];<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(unsigned char i=0;i&lt;numberOfClasses;i++)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(eveluateresult[i]&gt;=maxvalue)<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; maxvalue=eveluateresult[i];<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; classlabel=i+1;<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt; //&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(mv[0]==94&amp;&amp;mv[1]==77)<BR>&gt; //&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt; //&nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; std::cout &lt;&lt; "evaluation result" &lt;&lt; eveluateresult &lt;&lt; "]" &lt;&lt; std::endl;<BR>&gt; //&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pixel.Set(classlabel);<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pixel.Set(0);<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<BR>&gt; <BR>&gt; <BR></DIV></DIV></div><br>

      </body></html>