其中包含OpenCV490纯dll加载方法 和 OpenCV455的注册COM安装方法

 

打包下载地址:

蓝奏云:https://wwp.lanzouj.com/iCJSh1v85fta   提取码:ahk6

123网盘:https://www.123pan.com/s/ufi3Td-G8O53.html   提取码:ahk6

 

OpenCV455的注册COM安装方法.ahk

; autoit_opencv_com455.dll优点:体积小。缺点:只注册COM注册方法,不支持dll直接加载。

; 以下为示例代码,如果更新了dll,把455.dll替换成最新版的版本号名称即可

; 加载并初始化OpenCV
hOpenCV := DllCall("LoadLibrary", "Str", "opencv_world455.dll", "Ptr")
hOpenCVCom := DllCall("LoadLibrary", "Str", "autoit_opencv_com455.dll", "Ptr")

Try cv := ComObjCreate("OpenCV.cv")
  catch
    DllCall("autoit_opencv_com455.dll\DllInstall", "int", 1, "Wstr", A_IsAdmin=0 ? "user" : "", "cdecl")  ; 注册COM
    , cv := ComObjCreate("OpenCV.cv")

; 等效加载图片示例
img := cv.imread("Lena.png")  ; 不支持加载带中文路径的图片,但是可以相对路径加载
cv.imshow("Image", img)
cv.waitKey()
cv.deStroyAllWindows()
Return

 

OpenCV490加载dll方法.ahk

; ; autoit_opencv_com490.dll优点:支持dll直接加载和COM注册。缺点:体积大
; https://www.autohotkey.com/boards/viewtopic.php?f=6&t=96394

hOpencv := DllCall("LoadLibrary", "Str", "opencv_world490.dll", "Ptr")
hOpencvFfmpeg := DllCall("LoadLibrary", "Str", "opencv_videoio_ffmpeg490_64.dll", "Ptr")

autoit_opencv_com_path := A_ScriptDir "\autoit_opencv_com490.dll"
hOpencvCom := DllCall("LoadLibrary", "Str", autoit_opencv_com_path, "Ptr")
ComObjCreate := Func("_ComObjCreate").Bind(autoit_opencv_com_path)

; ComObject需要通过Call进行创建。
cv := ComObjCreate.Call("OpenCV.cv")

_ComObjCreate(opencvPath, ComObject) {
  DllCall(opencvPath "\DllActivateManifest")
  ComObject := ComObjCreate(ComObject)
  DllCall(opencvPath "\DllDeactivateActCtx")
  Return ComObject
}

; 等效加载图片示例
img := cv.imread("Lena.png")  ; 不支持加载带中文路径的图片,但是可以相对路径加载
cv.imshow("Image", img)
cv.waitKey()
cv.deStroyAllWindows()
Return

 

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