opencv Error:Bad argument <Unknown arrray type> in cvarrTomat

2014年7月7日

    这几天自己去写程序时候,遇到的opencv问题,问题看似很小,但是找起来是很头疼的。

 

自己解决的方法:(相同的问题,但是解决方法不同,因代码而异)目前自己总结:

问题描述:我是针对视频中的每张图进行操作,以src=cvQueryFrame(capture); 我在最后直接释放了cvReleaseImage(&src);

1.错误出处:最后一句cvReleaseImage(&src);

2.问题解决:

    cvQueryFrame从摄像头或文件中抓取一帧并且返回这一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。抓取后,capture被指向下一帧,可用cvSetCaptureProperty调整到合适的帧.

   与cvLoadImage不同的是,cvLoadImage为图像分配内存空间,而cvQueryFrame使用已经在cvCapture结构中分配好的内存。这样的话就不用通过cvReleaseImage来释放内存,当cvCapture结构释放后,每一帧图像对应的内存空间即会释放。

   注意:cvQueryFrame返回的指针总是指向同一块内存。建议cvQueryFrame后拷贝一份。而且返回的帧需要FLIP后才符合opencv的坐标系。若返回值为NULL,说明到了视频的最后一帧。

 

3. 总结

    A.认真学习opencv函数,否则用的时候混淆导致错误。

    B.在创建图像申请内存时,一定要记得去释放内存,否则内存会爆的。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值