繁体   English   中英

opencv:将iplimage转换为Mat后发生错误

[英]opencv: error after conversion of an iplimage to a mat

我需要将垫子转换为iplimage并返回,以便画一条线。 到目前为止,我的代码:

Mat mat = imread(path);
Point p,q;
...
imwrite(path1,mat1);
IplImage img = mat1;
cvDrawLine(&img,p,q,Scalar(0,0,255));
mat1 = Mat(&img);    //i also tried mat1=&img;
imwrite(path2,mat1);

第一次写入有效,但第二次写入异常。 有任何想法吗?

您可以使用cv::cvarrToMatCvMatIplImageCvMatND转换为Mat

对于您的情况,它将类似于:

mat1 = cv::cvarrToMat(&img, true); 

PS:正如@Miki所评论的那样,您应该避免使用过时的C OpenCV API。 使用C ++ API,它将简单地是:

cv::line(mat1, p, q, cv::Scalar(0, 0, 255));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM