用opencv把连续图片保存为视频时为什么一个画面出现3幅图片?

bit_cs2010 2013-06-07 08:56:33
读取一个彩色.avi视频,分帧,处理为灰度图,然后再保存为.avi格式的视频,但出现了一个画面3幅图片的问题,很是不懂,求大神慷慨解答!!!!
...全文
375 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
471888045 2014-06-04
  • 打赏
  • 举报
回复
刚才我终于解决了,尽管问题可能很简单,但是一天半苦思冥想总算有回报,而且多亏了赵4老师的提示,真是一语惊醒梦中人啊,多谢!
471888045 2014-06-04
  • 打赏
  • 举报
回复
引用 楼主 bit_cs2010 的回复:
读取一个彩色.avi视频,分帧,处理为灰度图,然后再保存为.avi格式的视频,但出现了一个画面3幅图片的问题,很是不懂,求大神慷慨解答!!!!

你好,请问你是如何解决这个问题的?我是将opencv2计算机视觉编程手册这本书上第10章的第一个读取、处理并保存的程序修改成将视频转换成灰度视频的,但是视频保存的结果和你之前遇到的一样,原视频截图为:
处理后保存得到的视频截图为:
赵4老师 2014-06-04
  • 打赏
  • 举报
回复
建议先编译链接调试OpenCV自带的相关例子代码。
471888045 2014-06-04
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
保存前将灰度值拷贝到RGB三个分量中,即生成RGB彩色格式的AVI,只不过RGB值都相等而已。
请问一下这个具体该怎么做呢?我刚刚起步,这么简单的东西搞了2天还是没解决,我使用的是opencv2.2版本,也想使用您说的这个方法,我知道是我混用了1.0版本的cvMerge,那2.0及以上版本该怎么办呢? 我的代码如下: cv::cvtColor(img,out,CV_BGR2GRAY); cvMerge(out,out,out,0,img);//这一句有问题:no suitable conversion function from cv::Mat to const CvArr* exists
赵4老师 2013-06-08
  • 打赏
  • 举报
回复
保存前将灰度值拷贝到RGB三个分量中,即生成RGB彩色格式的AVI,只不过RGB值都相等而已。
bit_cs2010 2013-06-08
  • 打赏
  • 举报
回复
Soga。。。。
赵4老师 2013-06-08
  • 打赏
  • 举报
回复
就我所知,这个世界上根本就没存在过只有灰度分量的AVI格式。 (不一定对,等楼下专家斧正)
bit_cs2010 2013-06-08
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
保存前将灰度值拷贝到RGB三个分量中,即生成RGB彩色格式的AVI,只不过RGB值都相等而已。
成功了,超级感谢!!!!!! 不过这是为什么呢?? 难道是因为cvWriteFrame在写单通道图片时有bug??

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧