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);
第一个 imwrite 有效,但在第二个,我得到了一个例外。有什么想法吗?
您可以使用
cv::cvarrToMat
将CvMat
、IplImage
或CvMatND
转换为Mat
。
对于您的情况,它将是这样的:
mat1 = cv::cvarrToMat(&img, true);
PS:正如@Miki所评论的那样,您应该避免使用过时的C OpenCV API。使用 C++ API,它将只是:
cv::line(mat1, p, q, cv::Scalar(0, 0, 255));
相关文章:
- Difference in displaying cv2 Mat
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- CHECK(调用)函数在Google Colab中出错
- 用pybind11包装C++抽象类时出错
- 使用cv::Mat.submat opencv时出错
- 将 IplImage 转换为 Mat 时出错
- OpenCV:将 IPLIMAGE 转换为 MAT 后出错
- 在OpenCV,Java中添加两个Mat时出错
- matPutVariable:尝试将数据输出到mat文件时出错(matrix::serialize::WrongSize