Opencv 学习笔记--错误记录

       最近做实时行人检测,用的Opencv中的行人检测例子稍微修改下,很快有了点结果。上面跟我要一个检测结果的视频,我想要用程序保存结果视频,也就是对每一帧的处理完之后保存到输出视频文件中,然后直接打开保存的那个视频就可以直接观看结果了。

       OpenCV中保存图像到视频的方法是用cvCreateVideoWriter和cvWriteFrame这两个函数来实现。于是在适当的地方加入这两个函数的代码,调试过程中的小问题暂时忽略不说了。编译通过之后,运行,然后才看输出视频,很奇怪的是输出视频中图像都是倾斜的,不知道哪里出了错误。图像经过行人检测的代码处理完之后有图像显示代码,显示正常图像。因为行人检测处理后得到的结果是cv::Mat类型,而cvWriteFrame要求写入的图像是IplImage类型,因此进行了类型转换,然后再写入视频的。既然前面显示正常,那因此推断是后面类型转换及写入视频这地方出了问题。

        开始时猜想是类型转换哪里出的问题,为了验证是否这里出的问题,在该代码后面添加了显示类型转换后的图像,结果显示也正常,于是想这肯定是写入视频的时候出问题了,可是这问题是在哪里呢?为什么会这样?愚蠢的我还曾怀疑是这个函数本身有问题呢,想要看看这个函数是否有问题,于是重新写了一个小程序,直接从摄像头读取抓取图像并保存到视频,结果一切正常,说明函数本身是没有问题的。

        再打开输出视频看看,发现倾斜的图像如果放正的话,高宽似乎都变大些了,才想起,因为为了提高检测速度,已经将图像缩小了,缩小之后处理完再保存,在这个地方具体哪儿把size弄错了,所以到前面重新把图像大小调整下,然后再编译运行,结果,终于正着了。原来是这么一个小问题,却害我花了一天时间。真是小错不可小觑,一个粗心却浪费很多时间。

   

备注:opencv里边有resize函数可以实现的!写出来的视频是倾斜的,最后通过更改图片尺寸解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值