opencv:将垫子转换为 iplImage 问题
opencv: Convert Mat to IplImage Issue
在我的程序中,我必须混合使用 c++ 和 c api。
我用c api捕获了一个图像并得到一个帧:
CvCapture* capture = 0;
capture = cvCaptureFromCAM(0);
// some code
IplImage* image = cvQueryFrame(capture);
然后将其转换为Mat
以与新的c ++ api兼容,我得到了投资回报率:
Mat captureFrame = cvarrToMat(image);
// some code
Mat roi = captureFrame(roiRect);
最后,我必须将垫子转换回 IplImage* 才能使用 c api:
IplImage imgCaptureFrame = roi;
当我使用它作为参考时&roi,我得到一个
OpenCV Error: Assertion failed (svec[j].size == dst.size && svec[j].depth() == d
st.depth() && svec[j].channels() == 1 && i < dst.channels()) in unknown function
, file C:slavebuildsWinInstallerMegaPacksrcopencvmodulescoresrcconvert.
cpp, line 1306
在代码中使用 C API。
当我只是使用
IplImage imgCaptureFrame = captureFrame;
而不是
IplImage imgCaptureFrame = roi;
没有任何错误,但我没有我的投资回报率。
我该怎么做才能将我的投资回报率转换为在 c API 中使用它?
要将IplImage*
转换为cv::Mat
并制作独立副本,请执行以下操作:
cv::Mat captureFrame = cv::Mat(image, true);
要为captureFrame
创建投资回报率,您可以执行以下操作:
cv::Rect roi;
roi.x = 165;
roi.y = 50;
roi.width = 440;
roi.height = 80;
cv::Mat cropped = new cv::Mat(captureFrame, roi);
最后,要以另一种方式进行转换:
IplImage imgCaptureFrame = cropped;
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- opencv:将垫子转换为 iplImage 问题