opencv用获取路径方式读取视频,在自己电脑可以正常打开视频,在其他电脑不行。

Maxlie 2017-06-08 08:47:30
CFileDialog dlg(TRUE, NULL, NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
NULL, NULL); // 选项图片的约定
dlg.m_ofn.lpstrTitle = _T("打开视频文件"); // 打开文件对话框的标题名
dlg.m_ofn.lpstrFilter=_T("*.mp4|*.mp4|*.dav|*.dav|*.avi|*.avi|*.rmvb|*rmvb|*.mkv|*.mkv| *.wmv|*.wmv| 视频文件 (*.*) |*.*||");

if( dlg.DoModal() != IDOK ) // 判断是否获得图片
return;

CString mPath = dlg.GetPathName(); // 获取图片路径
if (m_cam.isOpened())
{
m_cam.release();
}
if(!m_cam.open(LPCSTR(mPath)))
{
MessageBox("打开视频出错!");
}
else
{
// 显示图像参数
m_cam>>m_mat1;
char chEdit[10];
_itoa(m_mat1.cols,chEdit,10);
SetDlgItemText(IDC_EDIT_Realw,chEdit);
_itoa(m_mat1.rows,chEdit,10);
SetDlgItemText(IDC_EDIT_Realh,chEdit);
m_bProcess = FALSE;
m_bDestory = FALSE;
// 刷新显示区
Invalidate(TRUE);
// 设置定时器
SetTimer(1, 80, NULL);
}


以上是读取视频代码,生成的exe在自己电脑可以正常读取,在其他人电脑则执行if(!m_cam.open(LPCSTR(mPath)))后的
"打开视频出错!"。不知道是什么原因?
...全文
463 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2017-06-10
  • 打赏
  • 举报
回复
打印个东西看看文件对着没
Maxlie 2017-06-09
  • 打赏
  • 举报
回复
对呀 用到的全都c了,程序可以打开的,只是会执行if的那一句,应该是那句代码地址转换过程有问题,
lx624909677 2017-06-09
  • 打赏
  • 举报
回复
有把opencv的dll也拷贝到另外的电脑上么?
Maxlie 2017-06-09
  • 打赏
  • 举报
回复
应该不是解码器的问题,exe运行也ok,任意电脑都可以运行,我把用到的dll都是放在一个文件夹下的,我想到的可能会出问题的是m_cam.open(LPCSTR(mPath))这个mpath地址转换,但不清楚为什么,怎么修改?
沐阳2100 2017-06-09
  • 打赏
  • 举报
回复
1-- 可能是解码器问题; 2-- 生成的exe运行错误,可能需要将对应的.dll文件一起拷贝到另一台电脑;

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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