2017-03-03 8 views
0

私はOpenCVについて学び、x64マシンで実行しています。エラーcv :: matをcv :: arrに変換する

私は前にVS2015でOpenCV 3.2.0を使用しています。私はYouTubeのKyle Hounslowからステップチュートリアルで ステップをフォローしようとしていますが、エラーが発生します。

その後、私はVS2013を使用して再インストールし、私はまだ以下のようなエラーが発生しました:

Error 1 error C2664: 'void cvShowImage(const char *,const CvArr *)' : cannot convert argument 2 from 'cv::Mat' to 'const CvArr *' 
Error 2 IntelliSense: no suitable conversion function from "cv::Mat" to "const CvArr *" exists 

私はすでに下記のリンクでご覧それでも私のため

OpenCV can't compile

を動作しません。

私は以下のリンクもチェックしていますが、混乱しました。

how to convert from cv::Mat to CvArr?

私のコードは次のようなものです:

#include<iostream> 
#include<opencv\cv.h> 
#include<opencv2\highgui\highgui.hpp> 
#include<opencv2\videoio.hpp> 
#include<opencv2\core.hpp> 
#include<opencv2\imgproc\imgproc.hpp> 


using namespace cv; 

int main() 
{ 

    Mat image; 

    VideoCapture cap; 
    cap.open(0); 

    cvNamedWindow("window", 1); 

    while (true) 
    { 
     cap >> image; 

     cvShowImage("window", image); 

     cvWaitKey(33); 
    } 


} 

は、その、多くのおかげで私を助けてください。

申し訳ありません、元の問題がすでに++マットcを使用する必要がある場合は、imshow("window", image);を使用する必要があります

多くのおかげ

+0

'CvMat'そうコンストラクタに引数として' Mat'受け入れ: 'れるCvMatのimageMat(画像);'と、こののアドレスを渡します実際には次元とdtypeも渡す必要があります。 'CvMat imageMat(height、width、dtype、image); – EdChum

+2

** Do not do not do a cvShowImage:' cvShowImage( 'window"、&imageMat); '廃止されたC APIを使用してください!** [documentation](http://docs.opencv。ORG /マスター/ D8/DFE/classcv_1_1VideoCapture.html#a57c0e81e83e60f36c83027dc2a188e80)正しく – Miki

+0

これを行うオリジナルの問題が解決されていて、さらに問題がある場合は、必ず新しい質問 – slawekwin

答えて

0

あなたが古い混合され、新しいC++ API(Mat,)を使用して、 C API(cvNamedWindow,cvShowImagecvWaitKey)それをしないでください。 C apiを完全に削除します。 cvFunctionNameのような名前はすべて廃止されました。 cvを名前空間として使用する新しいAPIを使用してください。そうすれば、cv :: functionNameのような名前が呼び出されます。

あなたのケースでは、それはcv::namedWindowcv::imshowcv::waitKeyだ:

using namespace cv; 

int main() 
{ 
    Mat image; 

    VideoCapture cap; 
    cap.open(0); 

    namedWindow("window", 1); 
    while (true) 
    { 
     cap >> image; 
     imshow("window", image); 
     waitKey(33); 
    } 
} 
+0

私はあなたに私に何を提案しようとすると、cv:matをcv:arrに変換するためのエラーはもうありませんが、私が使用しているコンフリクトマシンです。 私は上記の結果を更新します –

1

を解決しているので、私は更新を削除します。 opencv docs

に従って

は、指定されたウィンドウ内の画像を表示します。

C++:無効関数imshow(定数文字列& winname、InputArrayマット)

C:無効cvShowImageは(のconstのchar *の名前、constのCvArr *画像)

関連する問題