OpenCVはIplImageを直接Matに変換できません

642 ワード

背景:最近OpenCVを習って公式チュートリアルを参照して勉強しました.学習表示でMatオブジェクトを作成するとき.IplImageオブジェクトをMatに割り当てたときにエラーが発生しました.
具体的なコードは以下の通りです.
IplImage * iplImage = cvLoadImage("xxx.png");

Mat mat(iplImage);

エラーを返すには、次の手順に従います.
C2664	“cv::Mat::Mat(cv::Mat &&)”:       1  “IplImage *”   “const cv::cuda::GpuMat &”	

MatクラスにMat::Mat(IplImage*iplImage)のコピーコンストラクタがないことを再確認します.
ネットで答えを見つけた
新しいOpenCVでは、Mat::Mat(IplImage*)コピーコンストラクタの代わりにcvarrToMat()関数を使用します.
具体的な方法は以下の通りです.
IplImage *pImage = cvLoadImage("...");
Mat mat = cvarrToMat(pImage);