[Insight-users] a cast problem ?

Lagaffe lagaffe74130 at yahoo.fr
Fri Sep 30 12:48:16 EDT 2005


Hi Karthik,

first many thanks for help ;-)

As you told me in your previous mail I did the
following change:
replace:
MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput()->Get_vnl_vector());
with
MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput());

But it still doesn't work...

 error: no matching function for call to
'itk::Statistics::MahalanobisDistanceMembershipFunction<itk::Vector<unsigned
char, 3u> >::SetMean(itk::Array<double>*)'
note: candidates are: void
itk::Statistics::MahalanobisDistanceMembershipFunction<TVector>::SetMean(const
vnl_vector<double>&) [with TVector =
itk::Vector<unsigned char, 3u>]
instantiated from here


I also check in ITK code and:
 As you said:meanAlgorithm[2]->GetOutput() is of type
itk::Array and not of type itk::Vector. 
AND the MahalanobisDistanceMembershipFunction->setMean
needs a vnl_vector<double> (MeanVectorType)BUT the
class Array derives from vnl_vector< TValueType >
So normally
MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput());
has to work !

the error means that the itk:Array doesn't derives
from vnl_vector wich is not possible, no ? so is it
possible that it is a source file conflict (I did not 
do the itk installation)
any idea ?

thanks,
Arnaud

--- Karthik Krishnan <Karthik.Krishnan at kitware.com> a
écrit :

> Hi Arnaud,
> 
> Most of the classes in Statistics recently between
> Versions 2.0 and 2.2  
> underwent a minor change, allow most of the
> algorithms to allow the 
> number of random variates  to be specified at
> run-time.
> 
>  From an API standpoint, this boils down to
> itk::Vector/ FixedArray being replaced with
> itk::Array
> itk::Matrix replaced with itk::VariableSizeMatrix.
> 
> The error that you see below is cause of these
> changes.
> 
> meanAlgorithm[2]->GetOutput() is of type itk::Array
> and not of type itk::Vector. 
> Since Array derives from vnl_vector, all you need to
> get the following code to compile is replace:
> 
>
MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput()->Get_vnl_vector());
> 
> with
> 
>
MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput());
> 
> We apologize for the API changes. All classes with
> such changes have this mentioned in bold on their
> doxygen pages.
> 
> Thanks
> Regards
> Karthik
> 
>  
> 
> Lagaffe wrote:
> 
> >Hello again,
> >
> >still trying to compile ;-)
> >Well, another problem ...
> >this is the line which was working before:
>
>MahalanobisDistance->SetMean(meanAlgorithm[2]->GetOutput()->Get_vnl_vector());
> >and now ...
> >error: 'class itk::Array<double>' has no member
> named
> >'Get_vnl_vector'
> >
> >meanAlgorithm is an Array of
> >itk::Statistics::MeanCalculator,
> >Any idea, why now I have a pb with Get_vnl_vector ?
> >
> >thanks
> >arnaud
> >
> >About my previous mail ... it seems that the
> problem
> >is due to an inconsistency with the use of "const"
> ...
> >but before it was compiling without problem ???
> > 
> >error: passing 'const
> itk::VariableSizeMatrix<double>'
> >as 'this' argument of 'void
> >itk::VariableSizeMatrix<T>::SetIdentity() [with T =
> >double]' discards qualifiers
> >it seems that discards qualifiers means:
> >discards qualifier
> >
> >Example 
> >myfile.cpp: In function `int main()':
> > myfile.cpp:20: passing `const DayOfYear' as `this'
> >argument of `void DayOfYear::Set(int, int)'
> discards
> >qualifiers
> >Meaning 
> >You have an inconsistency with the use of "const"
> >Usual Causes
> >A non-const member function is being invoked for a
> >const object
> >A const object is being passed as a non-const
> >parameter
> >A const member function calls a non-const member
> >function
> >See the CMSC 202 lecture notes on the use of const
> >
> >=> thanks for help
> >
> >arnaud
> >
> >
> >	
> >
> >	
> >		
>
>___________________________________________________________________________
> 
> >Appel audio GRATUIT partout dans le monde avec le
> nouveau Yahoo! Messenger 
> >Téléchargez cette version sur
> http://fr.messenger.yahoo.com
> >_______________________________________________
> >Insight-users mailing list
> >Insight-users at itk.org
> >http://www.itk.org/mailman/listinfo/insight-users
> >
> >  
> >
> 



	

	
		
___________________________________________________________________________ 
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger 
Téléchargez cette version sur http://fr.messenger.yahoo.com


More information about the Insight-users mailing list