<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>Hi there,</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>Though I tried the whole week, I could NOT find the reason.</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><FONT color=#000000><FONT face="?? ??"><SPAN lang=EN-US>Of course, I found a similar case(ImportImageFiter-&gt;itkImage, data transfer, memory-mapped image etc.) , and then tried</SPAN>…</FONT></FONT></P>
<P class=EC_EC_MsoNormal><FONT color=#000000><SPAN lang=EN-US><FONT face="?? ??">But, the data transfer(memory buffer </FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Wingdings">à</SPAN><SPAN lang=EN-US><FONT face="?? ??"> itkImage) was not work properly.</FONT></SPAN></FONT></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>My situation is like follows:</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><FONT color=#000000><FONT face="?? ??"><SPAN lang=EN-US>My program based on </SPAN>‘<SPAN lang=EN-US>ImageRegistrationMFC</SPAN>’ /&nbsp;ITK 3.6 / CMake 2.6 / VC++2005 SP1(MFC8)</FONT></FONT></P>
<P class=EC_EC_MsoNormal><FONT color=#000000><FONT face="?? ??"><SPAN lang=EN-US>1. Using ATL::CImage</SPAN>’<SPAN lang=EN-US>s load method, an image is loaded, and get the memory buffer by ATL::CImage:GetBits() method.</SPAN></FONT></FONT></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>2. Transfer Memory buffer to itkImage by ImportImageFilter, and run importer-&gt;Update()</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;&nbsp; --&gt; Until this time, work properly. </FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN><SPAN lang=EN-US><FONT face="?? ??" color=#000000>3. And then, save or filter proc. itkImage by ImageFileWriter/itk some filters</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;&nbsp; --&gt; This is a problem.</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000></FONT></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug Msg: memcpy.asm</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TrialUp1:</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; al,[esi]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; U - get byte from source <STRONG>(*Break Point)</STRONG></FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; V - spare</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[edi],al&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; U - put byte in destination</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT color=#000000><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,[dst]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; V - return pointer to destination</FONT></SPAN></FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; U - restore esi</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; V - restore edi</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N_EXIT&nbsp; </FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000></FONT></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>My code is like follows:</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>/*=========================================================================<BR><STRONG>&nbsp; ItkRegMFCView.h</STRONG> : interface of the CItkRegMFCView class</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; Include the essential header files for ITK image registration.<BR>&nbsp; Core functionality for image registration comes from ImageRegistration1 example.<BR>&nbsp; Please refer to InsightToolkit-3.0.0\Examples\Registration\ImageRegistration1.cxx<BR>&nbsp; <BR>&nbsp; Author&nbsp; Yong Su<BR>&nbsp; E-mail&nbsp; jean.timex@gmail.com<BR>&nbsp; Date&nbsp;&nbsp;&nbsp; January 29, 2007<BR>=========================================================================*/<BR>#pragma once</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>// Header files for ITK image registration<BR>#include "itkImageRegistrationMethod.h"<BR></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>...</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>#include "itkImportImageFilter.h"<BR>#include "itkBinaryThresholdImageFilter.h"</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>#include "itkImage.h"</SPAN></P><SPAN lang=EN-US>
<P class=EC_EC_MsoNormal><BR>...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>class CItkRegMFCView : public CView<BR>{<BR></P>
<P class=EC_EC_MsoNormal>...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>public:<BR>&nbsp; CItkRegMFCDoc* GetDocument() const;</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; typedef&nbsp; float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PixelType;<BR>&nbsp; typedef&nbsp; BYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytePixelType;</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; ...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; typedef itk::Image&lt; BytePixelType, Dimension &gt;&nbsp;&nbsp; ImageType;</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; ...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; CImage imgBase;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // an instance of CImage for fixed image<BR></P>
<P class=EC_EC_MsoNormal>&nbsp; ...</P>
<P class=EC_EC_MsoNormal>};</P>
<P class=EC_EC_MsoNormal>#ifndef _DEBUG&nbsp; // debug version in ItkRegMFCView.cpp<BR>inline CItkRegMFCDoc* CItkRegMFCView::GetDocument() const<BR>&nbsp;&nbsp; { return reinterpret_cast&lt;CItkRegMFCDoc*&gt;(m_pDocument); }<BR>#endif<BR></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>/*=========================================================================<BR>&nbsp; <STRONG>ItkRegMFCView.cpp</STRONG> : implementation of the CItkRegMFCView class<BR>&nbsp; <BR>&nbsp; Note:<BR>&nbsp;&nbsp;&nbsp;&nbsp; OnPaint() is used for updating images showing. Do not call this function<BR>&nbsp;&nbsp;&nbsp;&nbsp; or invoke this function by calling Invalidate() from CommandIterationUpdate.<BR>&nbsp;&nbsp; Because registration runs fast while refreshing the images runs slow.<BR>&nbsp;&nbsp; UpdateView() is created for you to handle iteration information.</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; Author&nbsp; Yong Su<BR>&nbsp; E-mail&nbsp; jean.timex@gmail.com<BR>&nbsp; Date&nbsp;&nbsp;&nbsp; January 29, 2007<BR>=========================================================================*/<BR>#include "stdafx.h"<BR></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>...</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp;</P></SPAN>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN><SPAN lang=EN-US>END_MESSAGE_MAP()</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>// CItkRegMFCView construction/destruction<BR>// Initialize the properties<BR>CItkRegMFCView::CItkRegMFCView()<BR>:margin(10),interval(5),margin_d(60)<BR>,freeViewMode(false),dragMode(true),showMode(0)<BR>,onPress_Align(false), onPress_Base(false),onPress_Input(false)<BR>,m_multiple_Align(1), m_multiple_Base(1), m_multiple_Input(1)<BR>,m_bRunning(false)<BR>{<BR>&nbsp; name_imgAlign = "output.png";</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; rectSrc_Base.left = 0;<BR>&nbsp; rectSrc_Base.right = 0;<BR>&nbsp; rectSrc_Base.top = 0;<BR>&nbsp; rectSrc_Base.bottom = 0;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; rectSrc_Input.left = 0;<BR>&nbsp; rectSrc_Input.right = 0;<BR>&nbsp; rectSrc_Input.top = 0;<BR>&nbsp; rectSrc_Input.bottom = 0;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; rectSrc_Align.left = 0;<BR>&nbsp; rectSrc_Align.right = 0;<BR>&nbsp; rectSrc_Align.top = 0;<BR>&nbsp; rectSrc_Align.bottom = 0;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; offset_Base_x = 0;<BR>&nbsp; offset_Base_y = 0;<BR>&nbsp; offset_Input_x = 0;<BR>&nbsp; offset_Input_y = 0;<BR>&nbsp; offset_Align_x = 0;<BR>&nbsp; offset_Align_y = 0;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp; mouse.x = 0;<BR>&nbsp; mouse.y = 0;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><STRONG>&nbsp; image = ImageType::New();<BR>&nbsp; image2 = ImageType::New();<BR></STRONG>}</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>CItkRegMFCView::~CItkRegMFCView()<BR>{<BR>}</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>...</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN><SPAN lang=EN-US>&nbsp;</P>
<P class=EC_EC_MsoNormal>//////////////////////////////////////////////////////////////<BR>//<BR>// Open fixed image<BR>//<BR>//////////////////////////////////////////////////////////////<BR>void CItkRegMFCView::OnFileOpenbase()<BR>{<BR>&nbsp; CString strFilter;<BR>&nbsp; CSimpleArray&lt;GUID&gt; aguidFileTypes;<BR>&nbsp; HRESULT hResult;</P>
<P class=EC_EC_MsoNormal>&nbsp; hResult = imgBase.GetExporterFilterString(strFilter,aguidFileTypes,_T("All Image Files"));<BR>&nbsp; if (FAILED(hResult)) {<BR>&nbsp;&nbsp;&nbsp; MessageBox(_T("GetExporterFilter Calling Failed!"),0,0);<BR>&nbsp;&nbsp;&nbsp; return;<BR>&nbsp; }</P>
<P class=EC_EC_MsoNormal>&nbsp; CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST, strFilter);<BR>&nbsp; dlg.m_ofn.nFilterIndex = m_nFilterLoad;<BR>&nbsp; hResult = (int)dlg.DoModal();<BR>&nbsp; if(FAILED(hResult)) {<BR>&nbsp;&nbsp;&nbsp; return;<BR>&nbsp; }</P>
<P class=EC_EC_MsoNormal>&nbsp; m_nFilterLoad = dlg.m_ofn.nFilterIndex;<BR>&nbsp; name_imgBase = dlg.GetFileName();<BR>&nbsp; imgBase.Destroy();<BR>&nbsp; hResult = imgBase.Load(name_imgBase);<BR>&nbsp; if (FAILED(hResult)) {<BR>&nbsp;&nbsp;&nbsp; MessageBox(_T("Base Image Loading Failed!"),0,0);<BR>&nbsp;&nbsp;&nbsp; Invalidate();<BR>&nbsp;&nbsp;&nbsp; UpdateWindow();<BR>&nbsp;&nbsp;&nbsp; return;<BR>&nbsp; }<BR>&nbsp; <BR>//&nbsp;&nbsp; typedef BYTE&nbsp; PixelType;<BR>//&nbsp;&nbsp; typedef itk::Image&lt; PixelType, 2 &gt;&nbsp;ImageType;<BR>//&nbsp;&nbsp; ImageType::Pointer image = ImageType::New();<BR>//&nbsp;&nbsp; ImageType::Pointer image2 = ImageType::New();</P>
<P class=EC_EC_MsoNormal>&nbsp; typedef itk::ImageFileReader&lt;ImageType&gt; ReaderType;<BR>&nbsp; ReaderType::Pointer reader = ReaderType::New();<BR>&nbsp; reader-&gt;SetFileName("coronal150.png");<BR>&nbsp; image2 = reader-&gt;GetOutput();<BR>&nbsp; reader-&gt;Update();</P>
<P class=EC_EC_MsoNormal><BR>&nbsp; //////////////////////////////////////////////////////////////////////////<BR>&nbsp; typedef itk::ImportImageFilter&lt; BytePixelType, Dimension &gt; ImportFilterType;<BR>&nbsp; ImportFilterType::Pointer importer = ImportFilterType::New();</P>
<P class=EC_EC_MsoNormal>&nbsp; int nx = imgBase.GetWidth();<BR>&nbsp; int ny = imgBase.GetHeight();</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; ImageType::SizeType size;<BR>&nbsp; size[0] = nx;<BR>&nbsp; size[1] = ny;</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; ImageType::IndexType start;<BR>&nbsp; start.Fill(0);</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; ImageType::RegionType region;<BR>&nbsp; region.SetSize( size );<BR>&nbsp; region.SetIndex( start );<BR>&nbsp; importer-&gt;SetRegion( region );</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; double origin[2];<BR>&nbsp; origin[0] = 0;&nbsp;//originX;<BR>&nbsp; origin[1] = 0;&nbsp;//originY;<BR>&nbsp; importer-&gt;SetOrigin( origin );</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; double spacing[2];<BR>&nbsp; spacing[0] = 1;&nbsp;//dx;<BR>&nbsp; spacing[1] = 1;&nbsp;//dy;<BR>&nbsp; importer-&gt;SetSpacing( spacing );</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; const int totalNumberOfPixels = nx * ny;<BR>&nbsp; BytePixelType *pixelData = static_cast&lt; BytePixelType * &gt;( (BYTE *)imgBase.GetBits() );</P>
<P class=EC_EC_MsoNormal>&nbsp; const bool importFilterWillDeleteTheInputBuffer = false;<BR>&nbsp; importer-&gt;SetImportPointer( pixelData,<BR>&nbsp;&nbsp; totalNumberOfPixels,<BR>&nbsp;&nbsp; importFilterWillDeleteTheInputBuffer );</P>
<P class=EC_EC_MsoNormal>&nbsp; importer-&gt;Update();</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>&nbsp; <STRONG>image = importer-&gt;GetOutput();</STRONG><BR>//&nbsp; image-&gt;GetPixelContainer()-&gt;ContainerManageMemoryOn();</P>
<P class=EC_EC_MsoNormal>//&nbsp; image = image2;</P>
<P class=EC_EC_MsoNormal><BR>//&nbsp;&nbsp; typedef itk::BinaryThresholdImageFilter&lt;ImageType, ImageType&gt; FilterType;<BR>//&nbsp;&nbsp; FilterType::Pointer filter = FilterType::New();<BR>// <BR>//&nbsp;&nbsp; filter-&gt;SetInput( image );<BR>//&nbsp;&nbsp; filter-&gt;SetOutsideValue( 0 );<BR>//&nbsp;&nbsp; filter-&gt;SetInsideValue( 255 );<BR>//&nbsp;&nbsp; filter-&gt;SetLowerThreshold( 160 );<BR>//&nbsp;&nbsp; filter-&gt;SetUpperThreshold( 220 );<BR>// <BR>//&nbsp;&nbsp; try<BR>//&nbsp;&nbsp; {<BR>//&nbsp;&nbsp;&nbsp;&nbsp; filter-&gt;Update();<BR>//&nbsp;&nbsp; }<BR>//&nbsp;&nbsp; catch( itk::ExceptionObject &amp; exp ) <BR>//&nbsp;&nbsp; {<BR>// &nbsp;&nbsp; std::cerr &lt;&lt; "Exception caught !" &lt;&lt; std::endl;<BR>// &nbsp;&nbsp; std::cerr &lt;&lt; exp &lt;&lt; std::endl;<BR>//&nbsp;&nbsp; }</P>
<P class=EC_EC_MsoNormal>&nbsp; typedef itk::ImageFileWriter&lt;ImageType&gt; WriterType;<BR>&nbsp; WriterType::Pointer writer = WriterType::New();<BR>//&nbsp; writer-&gt;SetInput( filter-&gt;GetOutput() );<BR>&nbsp; writer-&gt;SetInput( image );<BR>&nbsp; writer-&gt;SetFileName("output.bmp");<BR>&nbsp; try<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>writer-&gt;Update();&nbsp;&nbsp;&nbsp;&nbsp; // * Error: ImportImageFilter_err.PNG&nbsp;*&nbsp;&nbsp;&nbsp;</STRONG><BR>&nbsp; }<BR>&nbsp; catch( itk::ExceptionObject &amp; exp ) <BR>&nbsp; {<BR>&nbsp;&nbsp; std::cerr &lt;&lt; "Exception caught !" &lt;&lt; std::endl;<BR>&nbsp;&nbsp; std::cerr &lt;&lt; exp &lt;&lt; std::endl;<BR>&nbsp; }</P>
<P class=EC_EC_MsoNormal>&nbsp; // invoke onPaint()<BR>&nbsp; Invalidate();<BR>&nbsp; UpdateWindow();<BR>}</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>...</P>
<P class=EC_EC_MsoNormal>&nbsp;</P>
<P class=EC_EC_MsoNormal>//////////////////////////////////////////////////////////////<BR>//<BR>// handle Itk registration iteration information<BR>// <BR>//////////////////////////////////////////////////////////////<BR>void CItkRegMFCView::UpdateView(CString str)<BR>{<BR>&nbsp; CMainFrame *pMainFrame = (CMainFrame *)AfxGetApp()-&gt;m_pMainWnd;<BR>&nbsp; CEdit *pEdit = (CEdit*)pMainFrame-&gt;m_wndDialogBar.GetDlgItem(IDC_INFO);<BR>&nbsp; pEdit-&gt;SetWindowText(str);<BR>}<BR>//end<BR></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US>&nbsp;</SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>Pls give me some advice.</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000></FONT></SPAN>&nbsp;</P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>&nbsp;</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>Thanks,</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US><FONT face="?? ??" color=#000000>HeeMin</FONT></SPAN></P>
<P class=EC_EC_MsoNormal><SPAN lang=EN-US></SPAN>&nbsp;</P><br /><hr />Explore the seven wonders of the world <a href='http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE' target='_new'>Learn more!</a></body>
</html>