首页 > 其他分享 >AHK调用opencv(四)播放视频文件

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

时间:2022-10-12 10:00:24浏览次数:71  
标签:AHK frame cap dll opencv 视频文件 cv

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

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

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

https://wwm.lanzouw.com/ixoj200gbcaf  

天黑版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运行。

示例:播放视频文件

#DllLoad opencv_ahk.dll
#include <cv2>
#include <log>
SetWorkingDir A_ScriptDir
;初始化opencv模块
cv := ObjFromPtr(DllCall('opencv_ahk.dll\opencv_init', 'ptr', DllCall(A_AhkPath '\ahkGetApi', 'ptr'), 'cdecl ptr'))
cap := cv.VideoCapture()
frame := cv.Mat()
cap.open("test001.avi")
result := cap.isOpened()
while result{
    ret := cap.read(frame)
    if not ret{
        break
    }
    cv.imshow("image", frame)
}
cv.waitKey()
cv.destroyAllWindows()

有错误请联系我改正!

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

标签:AHK,frame,cap,dll,opencv,视频文件,cv
From: https://www.cnblogs.com/ff888/p/16783511.html

相关文章