AHK调用opencv(四)播放视频文件

AHK调用opencv(四)播放视频文件

本节内容对open()的另一种使用参数做了研究,注意这里open()里的参数是文件名。因为视频文件不同于相机,视频文件有时长,所以死循环中需要一个判断,判断视频帧是否结束,如果结束就退出循环。

  1. #NoEnv
  2. SendMode Input
  3. SetWorkingDir %A_ScriptDir%
  4. hOpencv := DllCall("LoadLibrary", "str", "opencv_world455.dll", "ptr")
  5. hOpencvCom := DllCall("LoadLibrary", "str", "autoit_opencv_com455.dll", "ptr")
  6. DllCall("autoit_opencv_com455.dll\DllInstall", "int", 1, "wstr", A_IsAdmin = 0 ? "user" : "", "cdecl")
  7. cv := ComObjCreate("OpenCV.cv")
  8. cap := ComObjCreate("OpenCV.cv.VideoCapture")
  9. frame := ComObjCreate("OpenCV.cv.MAT")
  10. cap.open("test001.avi")
  11. /*
  12. bool VideoCapture::open(const string& filename);
  13. bool VideoCapture::open(int device);
  14. 功能:打开一个视频文件或者打开一个捕获视频的设备(也就是摄像头)
  15. 参数:
  16. filename – 打开的视频文件名。
  17. device – 打开的视频捕获设备id ,如果只有一个摄像头可以填0,表示打开默认的摄像头。
  18. */
  19. istrue := cap.isOpened() ;返回布尔值,成功打开时值为true,反之为false
  20. ;MsgBox, % istrue
  21. While istrue{
  22. ret := cap.read(frame)
  23. if not ret{ ;这里加入一个判断,因为视频结束之后imshow()读不到视频帧就会报错
  24. break
  25. }
  26. img_gray := cv.cvtColor(frame, CV_COLOR_BGR2GRAY := 6)
  27. cv.imshow("Image", img_gray)
  28. }

上面用到的dll和图片蓝奏云链接

 

天黑版opencv_ahk.dll使用(改变了调用方式,优化速度…)

相关文件:https://wwz.lanzouw.com/iAkK803eaaud

播放视频依赖opencv_videoio_ffmpeg455_64.dll,链接https://wwz.lanzouw.com/iBP3A03ed1vi密码:fcd2

cv2.ahk和log.ahk来自社区群友zzZ…

可以用文件中的天黑版的v2h版ahk运行。

示例:播放视频文件

  1. #DllLoad opencv_ahk.dll
  2. #include <cv2>
  3. #include <log>
  4. SetWorkingDir A_ScriptDir
  5. ;初始化opencv模块
  6. cv := ObjFromPtr(DllCall('opencv_ahk.dll\opencv_init', 'ptr', DllCall(A_AhkPath '\ahkGetApi', 'ptr'), 'cdecl ptr'))
  7. cap := cv.VideoCapture()
  8. frame := cv.Mat()
  9. cap.open("test001.avi")
  10. result := cap.isOpened()
  11. while result{
  12. ret := cap.read(frame)
  13. if not ret{
  14. break
  15. }
  16. cv.imshow("image", frame)
  17. }
  18. cv.waitKey()
  19. cv.destroyAllWindows()

有错误请联系我改正!

本系列所有贡献者(AutoHotKey中文社区群友)不分先后:天黑请闭眼,zzZ…,演好自己,僵尸,城西,Tebayaki。

AHK调用opencv(五)保存视频

https://www.autoahk.com/archives/39953

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
其他教程

【第五关】【挑战】数组中的两个相邻值对调的方法

2022-2-14 22:07:09

其他教程案例

【高级】AutoHotkey调用com对象时如果返回两个(多个)值该如何处理?

2022-2-14 23:25:20

3 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
  1. hexuren

    ?

  2. user13894

    6

  3. hexuren
    1河许人给您打赏了¥2
个人中心
购物车
优惠劵
私信列表
搜索