注册 登录
编程论坛 C++教室

关于MFC多线程,双摄像头只能显示一个的问题

meluoliu 发布于 2013-01-20 15:40, 1925 次点击
帮我瞧瞧吧,问题出现在哪个地方?为什么两个界面只能同时打开同一个摄像头,当选Num0和Num1就有一边不能显示,而都选Num0或都选Num1能同时打开,当然打开的是相同的画面。还有一点,前段时间这段代码我调试过,没问题的,可以同时打开两摄像头,后来忙于算法的学习把它仍在一边了,这几天再调试就不行了,而且我记得当初在改程序时也出现这样的问题,就是不稳定,时而灵时而不灵.......
我觉得可能问题在多线程调试,但是我可以把程序改成单线程的,就是每隔一段时间在左右界面错开显示,使之同一时间只执行一个摄像头的获取帧操作与位图显示,但还是这个问题:时而灵时而不灵.......

只有本站会员才能查看附件,请 登录

这是运行次序,有什么问题吗?开始我没用for循环,比如用CapOpenCamera就直接打开两camera,然后再调用带宽与格式设置,然后是start,再然后就stop,后来问了前辈说上面这样次序才对,但还是失败,只能打开一个...



[ 本帖最后由 meluoliu 于 2013-1-20 15:52 编辑 ]
9 回复
#2
meluoliu2013-01-20 15:42
只有本站会员才能查看附件,请 登录

这是开始按钮的封装,点击该按钮只能显示一个界面
#3
meluoliu2013-01-20 15:54
只有本站会员才能查看附件,请 登录

这段是循环捕捉预览
#4
meluoliu2013-01-20 16:04
只有本站会员才能查看附件,请 登录

这段主要是摄像头的获取与位图的创建,无关紧要吧。
#5
锋了2013-01-20 20:41
这么多代码,表示会吐血
#6
yaobao2013-01-20 20:46
酱油君路过
#7
yuccn2013-01-20 21:05
表示 这样看代码很难受
#8
meluoliu2013-01-20 21:28
好吧,这是我用断点调试第二幅图片的代码的结果:
只有本站会员才能查看附件,请 登录


第一次运行第二个断点会被跳过,点停止再开始第二次运行,这次第五个断点会被跳过,就是没有“预览”成功,问题应该出在这吧
而且这五个断点无法跳出来,是不是陷入死循环了,还是程序本身的需要,来循环捕捉?
#9
meluoliu2013-01-20 21:33
现在只有一幅图片了
我没用复制张贴是因为俺觉得这样看代码类似在visual studio 200X的环境中了,呵呵,各位前辈多指教!
#10
meluoliu2013-01-20 21:44
回复 7楼 yuccn
斑竹大人现现身吧......
1