AHK调用opencv(十一)性能测量和改进技术 – ahk_v2_beta3

许多 OpenCV 功能都使用 SSE2,AVX 等进行了优化。它还包含未经优化的代码。因此,如果我们的系统支持这些功能,我们应该利用它们(几乎所有现代处理器都支持它们)。优化功能在编译时是默认启用的,因此,OpenCV 在启用时运行优化代码,否则运行未优化代码。您可以使用cv.useOptimized()来检查它是否已启用/禁用,并使用cv.setUseOptimized()来启用/禁用它。

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 := ComObject("OpenCV.cv")
e1 := cv.getTickCount() ;返回参考事件(如机器开启时刻)到调用此函数的时钟周期数

;测试打开一张图片所需的时间
img2 := cv.imread("test.png")
cv.imshow("Image_2", img2)


e2 := cv.getTickCount()
time := 1000*(e2 - e1)/cv.getTickFrequency() ;返回时钟周期的频率,或每秒钟的时钟周期数
MsgBox time "毫秒"


;查看是否启用了优化,返回1则为是
s := cv.useOptimized()
MsgBox s

;禁用优化
cv.setUseOptimized(ComValue(0xB, 0)) ;这里参数给了一个flase
s1 := cv.useOptimized()
MsgBox s1

AHK调用opencv(十一)性能测量和改进技术 - ahk_v2_beta3

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

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

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

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

示例:性能测量和改进技术

#Dllload lib
#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'))
cv.namedWindow("image")
cv.moveWindow("image", 100, 100)

e1 := cv.getTickCount()

img := cv.imread("image/lena.png")
cv.imshow("image", img)

e2 := cv.getTickCount()
time := 1000*(e2 - e1)/cv.getTickFrequency()
log.info(time)


s := cv.useOptimized()
log.info('是否启用优化?' s)

cv.setUseOptimized(false) ;这里参数给了一个flase
s1 := cv.useOptimized()
log.info('是否启用优化?' s1)

有错误请联系我改正!

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

给TA捐赠
共{{data.count}}人
人已捐赠
其他教程

AHK调用opencv(十二)更改颜色空间 - ahk_v2_beta3

2022-3-24 20:44:44

其他教程

AHK调用opencv(十)图像的算术运算 - ahk_v2_beta3

2022-3-24 20:47:27

2 条回复 A文章作者 M管理员
  1. ahker
    ahker给您打赏了¥2
  2. dbgba
    dbgba给您打赏了¥2
个人中心
购物车
优惠劵
有新私信 私信列表
搜索