关于此的文档似乎非常不稳定.
我基本上有一个空的IplImage*数组(IplImage**imageArray),我正在调用一个函数来导入一个cv :: Mats数组 - 我想将我的cv :: Mat转换为IplImage*所以我可以将其复制到数组中.
目前我正在尝试这个:
while(loop over cv::Mat array)
{
IplImage* xyz = &(IplImage(array[i]));
cvCopy(iplimagearray[i], xyz);
}
Run Code Online (Sandbox Code Playgroud)
这会产生段错误.
还尝试:
while(loop over cv::Mat array)
{
IplImage* xyz;
xyz = &array[i];
cvCopy(iplimagearray[i], xyz);
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个编译时错误:
error: cannot convert ‘cv::Mat*’ to ‘IplImage*’ in assignment
坚持我如何进一步,并希望一些建议:)
Yee*_*Fei 22
cv::Mat是OpenCV2.X中引入的新类型,而IplImage*"遗留"图像结构.
虽然,cv::Mat确实支持IplImage构造函数参数的使用,但默认库不提供其他方式的功能.您需要手动提取图像标题信息.(请记住,您需要分配IplImage结构,这在您的示例中是不足的).
Lov*_*ill 18
Mat image1;
IplImage* image2=cvCloneImage(&(IplImage)image1);
Run Code Online (Sandbox Code Playgroud)
猜猜这会完成这项工作.
编辑:如果您遇到编译错误,请尝试这种方式:
cv::Mat image1;
IplImage* image2;
image2 = cvCreateImage(cvSize(image1.cols,image1.rows),8,3);
IplImage ipltemp=image1;
cvCopy(&ipltemp,image2);
Run Code Online (Sandbox Code Playgroud)
小智 12
(you have cv::Mat old)
IplImage copy = old;
IplImage* new_image = ©
Run Code Online (Sandbox Code Playgroud)
你使用new作为最初声明的IplImage*.
这是最近针对 dlib 用户的修复链接
cv::Mat img = ...
IplImage iplImage = cvIplImage(img);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120965 次 |
| 最近记录: |