[Insight-users] HELP! A "magic" bug bites me.
Michael Xanadu
xanadu.michael at googlemail.com
Mon Aug 17 12:07:28 EDT 2009
Hi Luis,
thank you for your quick reply. You're right, usually I'm a C# & Java
programmer and I'm into C++/VTK/ITK for just a few weeks. Do you really
think my problems lies in uninitialized variables?
I already used your "gremlin detectors" earlier, the m_Dicomreader works
fine and the thresholder always produces a black output (all pixels are
zero). But I think the problem really is C++ (not ITK), too. What do you
think should I do? Are there special rules, when using ITK in C++ (for
example, should I initialize my pipelines in a special way or something?)
Are there some important C++ topics I should know about?
Regards, Michael
2009/8/17 Luis Ibanez <luis.ibanez at kitware.com>
>
> Hi Michael,
>
> This is clearly the work of Gremlins!
>
>
> Here are some of the typical mechanisms used by Gremlins to exasperate C++
> developers
> with the evil hope of making adopt C# or Java:
>
>
> - Distract the C++ developer to make her/him leave some uninitialized
> variables
> (You can check for uninitialized variables by using Valgrind)
>
> - Gremlins may have removed from your m_DicomReader class the code that
> triggers the read of the DICOM image, so that when you call
> GetITKImage()
> you get an empty image.
>
>
> You can install Gremlin detectors by adding a couple of lines:
>
>
> - m_Dicomreader->GetITKOutput()->Print( std::cout );
> before you set the image to the threshold filter
>
> - thresholder->GetOutput()->Print( std::cout )
> after you call Update in the connected threshold filter.
>
>
>
> Regards,
>
>
> Luis
>
> ---------------------------
> On Mon, Aug 17, 2009 at 5:26 AM, Michael Xanadu <
> xanadu.michael at googlemail.com> wrote:
>
>> Hallo itk users,
>>
>> now take a look at some real strange bug. I programmed a
>> ConnectedThresholdImageFilter, which works (surprisingly).
>> But if add add some lines of QT code into the method (which don't mess
>> with the filter) - all I get is a black output!
>> This kind of bug has happened to me a lot lately. Sometimes a filter
>> doesn't seem to work, I tinker around with it for a day and after the SAME
>> code works!
>> I even have a fast marching filter which only works, if I add some lines
>> in which I create some itk::ImageFileWriter objects (BUT I DON'T USE THEM!).
>> And once I get a code to work, it only works in the current
>> method/class/project. If I copy and paste the code -> black ouput!
>> Do Someone know, what went wrong?
>>
>> Thanx in advance, Michael
>>
>>
>>
>> void MyMainWindow::connectedThresholdFilter()
>> {
>> typedef itk::ConnectedThresholdImageFilter<ImageType, ImageType>
>> ThresholderType;
>> ThresholderType::Pointer thresholder = ThresholderType::New();
>> thresholder->SetInput( m_Dicomreader->GetITKOutput() );
>>
>> // if I uncomment following line, I get a black output !!!!
>> //QString s1 = this->qlineedit1->text();
>>
>> thresholder->SetLower(0);
>> thresholder->SetUpper(800);
>> ImageType::IndexType index;
>> index[0] = 250;
>> index[1] = 250;
>> thresholder->SetSeed(index);
>> thresholder->SetReplaceValue(255);
>>
>> try
>> {
>> thresholder->Update();
>> }
>> catch( itk::ExceptionObject & excep )
>> {
>> std::cerr << "Exception caught !" << std::endl;
>> std::cerr << excep << std::endl;
>> }
>>
>> // Here I use a vtkImageViewer2 to show the output
>> Utility::popUpImage(thresholder->GetOutput());
>> }
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090817/350e5bbb/attachment.htm>
More information about the Insight-users
mailing list