建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

mxm

发帖: 4粉丝: 0

发消息 + 关注

发表于2021年01月02日 22:26:15 156 9
直达本楼层的链接
楼主
显示全部楼层
[问题求助] 【Atlas 200 DK】opencv 的VideoCaputre(mp4_file)失败


跟随这个例子,https://gitee.com/ascend/samples/blob/master/classification_video/for_atlas200dk_1.7x.0.0_c++,编译无问题,但是在开发板上运行的时候报

Movie open Error

此处代码如下,

    string videoFile = string(argv[1]);

    cv::VideoCapture capture(videoFile);

    if (!capture.isOpened()) {

        cout << "Movie open Error" << endl;

        return FAILED;

    }


在开发版上,使用python3.6,试图用cap = cv2.VideoCapture('../data/cat.mp4')打开,cap.isOpened()为False

slog开到Debug级别,没有任何的日志信息


此mp4文件,在server上opencv可以正常打开


搜遍了论坛,似乎没有找到相同的问题,我搞错了什么东西吗?

ffmpeg和opencv均根据下面的连接安装

https://gitee.com/ascend/samples/blob/master/common/install_opencv/for_atlas200dk/README.md


举报
分享

分享文章到朋友圈

分享文章到微博

wcyjy

发帖: 10粉丝: 7

发消息 + 关注

发表于2021年01月03日 00:14:29
直达本楼层的链接
沙发
显示全部楼层
  1. 请回复报错截图?

  2. 视频样例可先运行下此链接样例,在运行当前样例:https://blog.csdn.net/Hello_yes112/article/details/107757336?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.not_use_machine_learn_pai

  3. 当前所有版本Python3.7.5,看你的还是3.6建议从新配置环境及制卡。

点赞 评论 引用 举报

mxm

发帖: 4粉丝: 0

发消息 + 关注

更新于2021年01月03日 08:04:26
直达本楼层的链接
板凳
显示全部楼层

开发板上python也要装3.7.5吗?200dk开发者套件的文档里我只找到server端是要3.7.5的


Screen Shot 2021-01-03 at 07.57.07.png

Screen Shot 2021-01-03 at 07.55.51.png

Screen Shot 2021-01-03 at 07.56.24.png


点赞 评论 引用 举报

mxm

发帖: 4粉丝: 0

发消息 + 关注

发表于2021年01月03日 13:38:19
直达本楼层的链接
地板
显示全部楼层

FYI, 那些使用opencv打开图片之类的sample都没有问题

点赞 评论 引用 举报

A文弱书生

发帖: 0粉丝: 4

发消息 + 关注

更新于2021年01月03日 18:21:27
直达本楼层的链接
5#
显示全部楼层

现有信息不足以判断环境是否未配置好,根据isOpened的逻辑请先确认:

1、视频文件路径正确;

2、你的用户具有文件的读权限;

3、该文件确实是视频文件;

以上三点任意一条不满足就会认为无法打开或无法解析而返回failed

点赞 评论 引用 举报

mxm

发帖: 4粉丝: 0

发消息 + 关注

发表于2021年01月03日 20:25:15
直达本楼层的链接
6#
显示全部楼层

Screen Shot 2021-01-03 at 20.23.40.png

权限应该完全没有问题,相同的文件在非开发板上可以opencv打开

评论
A文弱书生 2021-1-4 10:19 评论

把文件移到同一目录中看看

... 查看全部
点赞 评论 引用 举报

L_y

发帖: 12粉丝: 30

发消息 + 关注

发表于2021年01月04日 11:47:07
直达本楼层的链接
7#
显示全部楼层

你好 opencv打开图片没有问题 打开视频有问题的话一般是 opencv在编译安装时没有加载到ffmpeg导致的 需要你按照这个链接https://gitee.com/ascend/samples/blob/master/common/install_opencv/for_atlas200dk/README.md 的步骤五和步骤六重新检查一下,确认每一步都成功运行 每次运行完一条linux命令 可以echo $?看下是否运行成功,再执行下一条命令

点赞 评论 引用 举报

mxm

发帖: 4粉丝: 0

发消息 + 关注

更新于2021年01月04日 13:42:24
直达本楼层的链接
8#
显示全部楼层

出错不是在读取视频文件本身,而是查询ioctl的时候报错


openat(AT_FDCWD, "./cat.mp4", O_RDWR|O_NONBLOCK) = 13

ioctl(13, VIDIOC_QUERYCAP, 0xaaaab41a9d38) = -1 ENOTTY (Inappropriate ioctl for device)

close(13)                               = 0

newfstatat(AT_FDCWD, "./cat.mp4", {st_mode=S_IFREG|0644, st_size=88425178, ...}, 0) = 0

openat(AT_FDCWD, "./cat.mp4", O_RDONLY) = 13

fstat(13, {st_mode=S_IFREG|0644, st_size=88425178, ...}) = 0

read(13, "\0\0\0 ftypisom\0\0\2\0isomiso2avc1mp41"..., 4096) = 4096

close(13)                               = 0

openat(AT_FDCWD, "./cat.mp4", O_RDONLY) = 13

close(13)                               = 0

openat(AT_FDCWD, "./cat.mp4", O_RDONLY) = 13

read(13, "\0\0\0 ftypisom\0\0\2\0isomiso2avc1mp41"..., 8191) = 8191

close(13)                               = 0

write(1, "[INFO]  Acl init success\n[INFO] "..., 250[INFO]  Acl init success

[INFO]  Open device 0 success

[INFO]  load model ../model/googlenet.om success

[INFO]  create model description success

[INFO]  create model output success

[INFO]  OpenChannel start

[INFO]  OpenChannel param

Movie open Error

) = 250


之前安装opencv是根据https://gitee.com/ascend/samples/tree/master/common/install_opencv/for_atlas200dk来做的

但实际编译opencv之前需要安装apt install libv4l-dev,然后重新编译opencv就可以解决这个问题


其实编译opencv之前,还要安装python3-numpy,否则编译opencv的时候会报一个容易被忽略掉的numpy头文件找不到的错误

然后把以下命令从

cmake -D BUILD_SHARED_LIBS=ON  -D BUILD_opencv_python3=YES -D BUILD_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D  CMAKE_INSTALL_PREFIX=/home/HwHiAiUser/ascend_ddk/arm -D WITH_LIBV4L=ON -D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules -D PYTHON3_LIBRARIES=/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu/libpython3.6m.so  -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.6/dist-packages/numpy/core/include -D OPENCV_SKIP_PYTHON_LOADER=ON ..

改成

cmake -D BUILD_SHARED_LIBS=ON  -D BUILD_opencv_python3=YES -D BUILD_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D  CMAKE_INSTALL_PREFIX=/home/HwHiAiUser/ascend_ddk/arm -D WITH_LIBV4L=ON -D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules -D PYTHON3_LIBRARIES=/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu/libpython3.6m.so  -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include -D OPENCV_SKIP_PYTHON_LOADER=ON ..

不过这个跟我遇到的这个错误无关

点赞 评论 引用 举报

L_y

发帖: 12粉丝: 30

发消息 + 关注

更新于2021年01月04日 15:02:50
直达本楼层的链接
9#
显示全部楼层

你好 

Screenshot from 2021-01-04 14-23-03.png

如果 cv2.VideoCapture 打开视频 通过 isOpened()查询到视频打开失败 说明 opencv没有成功加载FFMPEG 。

可以登录到开发板上 手动执行 ffmpeg命令看下 ffmpeg是否安装成功 ,如果ffmpeg安装成功的话 那么你需要重新编译安装 opencv了。如果在终端中输入ffmpeg 命令没有回显的话 需要先安装 ffmpeg之后再安装opencv。

还有您说的iotcl这个出错 是你自己添加的代码段吗 ?在https://gitee.com/ascend/samples/blob/master/classification_video/for_atlas200dk_1.7x.0.0_c++ 这个链接中应该没有使用iotcl

可以参考下这个帖子 希望对您有帮助 : https://bbs.huaweicloud.com/forum/thread-92372-1-1.html

评论
mxm 2021-1-4 19:15 评论

与ffmpeg无关,是libv4l-dev未安装导致的 上面是strace的输出

... 查看全部
点赞 评论 引用 举报

lcynihao

发帖: 10粉丝: 4

发消息 + 关注

发表于2021年01月04日 18:57:59
直达本楼层的链接
10#
显示全部楼层

在执行编译前会有一步cmake操作,操作完成后会生成下图,需重点关注Python3相关内容,它下面4个路径需都识别到。

image.png

若未识别到,需要检查cmake 后加的参数配置的路径是否都正确,检查完毕后,可清空build文件夹,再次执行cmake。

下图为正确结果,执行后续步骤,即可成功安装python版opencv。

image.png

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册