IplImage *をMatに変換するために検索しましたが、すべての回答はcvMatへの変換に関するものでした。
どうしたらいいの?そして、MatとcvMatの違いは何ですか?
前もって感謝します
ここが良い解決策です
Mat(const IplImage* img, bool copyData=false);
レコードの場合:core/src/matrix.cppを見ると、実際にはコンストラクターcv::Mat(IplImage*)
が消えているようです。
しかし、私はこの代替案を見つけました:
IplImage * ipl = ...;
cv::Mat m = cv::cvarrToMat(ipl); // default additional arguments: don't copy data.
Mat documentation をご覧ください。
// converts old-style IplImage to the new matrix; the data is not copied by default
Mat(const IplImage* img, bool copyData=false);
cv :: MatまたはMat、両方とも同じです。
Matには演算子CvMat()があるため、単純な割り当てが機能します
マットをCvMatに変換
Mat mat = ---------;
CvMat cvmat = mat;
CVMatをMatに変換
Mat dst = Mat(cvmat, true);
マットをIplImage *に変換
>シングルチャネルの場合
IplImage* image = cvCloneImage(&(IplImage)mat);
> 3チャネルの場合
IplImage* image = cvCreateImage(cvSize(mat.cols, mat.rows), 8, 3);
IplImage ipltemp = mat;
cvCopy(&ipltemp, image);
これがお役に立てば幸いです。乾杯:)