2012-03-21 3 views
2

OCR関連プロジェクトには、Microsoft Visual Studio 2008、OpenCV、C++、SVMを使用しています。少なくとも私は昨日までのコードを実行することができ、私はプロジェクトが作業を継続するために開いたときに、VSはこのエラーを報告しました:OpenCVのSVM:Visual Studio 2008でエラーが間違って報告されました(またはそうですか?)

error C2664: 'bool CvSVM::train(const CvMat *,const CvMat *,const CvMat *,const CvMat *,CvSVMParams)' : cannot convert parameter 1 from 'cv::Mat' to 'const CvMat *' 

それは前に実現しなかったと私はそれに関連するすべてのコードを変更していない(Iカーネルのパラメータを変更しただけです)。

コードがエラーを得ている:image:私は、コードの上に置くと

Mat curTrainData, curTrainLabel; 
CvSVM svm; 
. 
. 
. 
svm.train(curTrainData, curTrainLabel, Mat(), Mat(), params); 

、私はまだこのヒントを得ました。

これは私の構文が間違っていないことを意味します。だから、なぜVSはそのようなエラーを報告するのは気にかかりますか?

答えて

0

問題は、Opencv C++リファレンスをCリファレンスよりも使用していることです。私はCvMatがOpencvのCの部分であることを意味しますが、 "cv"名前空間に属するcv :: MatはC++の部分です。だから私の提案は、それを必要なフォーマットに変換します。ここにopencvのチートシートへのリンクがあります。コードの最初の数行をチェックしてください。それはあなたにそれを行う方法を教えてくれます。 Convert from Mat to CvMat

関連する問題