OpenCV系列 - 作者:cc   原链接:https://www.cnblogs.com/ff888/p/16783558.html

许多 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

 

 

dbgba优化整理OpenCV系列示例打包下载20240513:

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

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

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

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

 

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

#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。

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。