[Insight-users] WG: Abnormal termination error with erotion filter!!!
salah
salah at gris . uni-tuebingen . de
Fri, 30 May 2003 16:33:44 +0200
> Hello all,
>=20
> I am using the GrayscaleFunctionErodeImageFilter.=20
> exactly as show in this piece of code
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
> // this piece is in the header file of my class
> typedef itk::GrayscaleFunctionErodeImageFilter<InputImageType,
> ImageType, KernelType> =
InputErotionFilterType;
> InputErotionFilterType::Pointer m_Eroder;=20
>=20
> // in the constructor of my class=20
> m_Eroder =3D InputErotionFilterType::New(); =20
> =20
> // in the erosion method of my class
> KernelType::SizeType ballSize;
> KernelType ball; // Structuring element
> ballSize[0] =3D rad; ballSize[1] =3D rad; ballSize[2] =3D =
rad;
> ball.SetRadius(ballSize);
> ball.CreateStructuringElement();
>=20
> m_Eroder->SetInput( m_InputImage );
> m_Eroder->SetKernel( ball );
> m_Eroder->Update();
> m_ErodedImage =3D m_Eroder->GetOutput();
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>=20
> There is one instant of the erosion filter (m_Eroder) in my
> appliation. It is created in the constractor of the base class
> of my application. The erosion method is called by pressing
> a button in the UI.
>=20
> I have the following problem with this combination:
>=20
> The erosion filter works fine when I call it for the first time.
> It also works fine if I change the radius of the structuring
> element and re-run the filter on the same image. Moreover,
> it works fine if feed it with a new input image of the same=20
> dimensions of the first image. BUT, if I feed it with an image
> of some new different dimensions. The program exits with
> an abnormal termination error message!!!!!
>=20
> I tried to trace the program. It crashes exactly at the=20
> m_Eroder->Update();
> statement....
>=20
> Did anybody have such a problem?? Could anybody please
> guess what it could be??=20
>=20
> I think the problem COULD be solved if there WERE some way
> to "RESET" the instance of the filter, of cource without deleting
> it or re-calling ::New();
>=20
>=20
> Thanks a lot ,,,,
>=20
> Zein
>=20
> =
->8<------------->8<------------->8<------------->8<------------->8<-----=
-------->8<-
> Zein I. Salah=20
> University of T=FCbingen, WSI-GRIS, Sand 14, 72076 T=FCbingen=20
> Email: salah at gris . uni-tuebingen . de
> Tel.: (07071) 29 75465 (GRIS), Fax: (07071) 29 54 66
>=20