[英]No suitable user-defined conversion from "cv::Scalar" to "CvScalar" exists
[英]No suitable user-defined conversion from "cv::Mat" to "IplImage" exists
我正在嘗試使用以下特征將 cv::Mat 轉換為 pc 中的 IplImage:
不同選項的示例:
cv::Mat MBin = cv::Mat::zeros(cv::Size(64, 64), CV_32FC1);
IplImage* image0= new IplImage(MBin);
IplImage image1 = MBin;
IplImage* image2 = cvCloneImage(&(IplImage)MBin);
IplImage* image3;
image3 = cvCreateImage(cvSize(MBin.cols, MBin.rows), 8, 3);
IplImage image4 = MBin;
cvCopy(&image4, image3);
imageX 出現的地方會產生標題錯誤。
這是唯一的解決方案,它不會產生編譯器錯誤:
#include <opencv2/core/types_c.h>
Mat Img = imread("1.jpg");
IplImage IBin_2 = cvIplImage(MBin);
IplImage* IBin = &IBin_2;
在opencv3.x
之前, Mat
有一個構造函數Mat(const IplImage* img, bool copyData=false);
. 但是在opencv3.x
, Mat(const IplImage* img, bool copyData=false);
構造函數被取消。
因此,您可以參考以下示例將Mat
轉換為IplImage
。
//Mat—>IplImage
//EXAMPLE:
//shallow copy:
Mat Img=imread("1.jpg");
IplImage* pBinary = &IplImage(Img);
//For a deep copy, just add another copy of the data:
IplImage *input = cvCloneImage(pBinary)
此外,您可以參考此鏈接以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.