1 (изменено: Malcev, 2021-11-07 01:13:59)

Тема: AHK: OpenCV com

https://www.autoitscript.com/forum/topi … ncv-v4-udf
На автохотки регистрировать и пользоваться как-то так:

; register com
hOpencv := DllCall("LoadLibrary", "str", "opencv-4.5.4-vc14_vc15\opencv\build\x64\vc15\bin\opencv_world454.dll", "ptr")
hOpencvCom := DllCall("LoadLibrary", "str", "autoit-opencv-com\autoit_opencv_com454.dll", "ptr")
DllCall("autoit_opencv_com454.dll\DllAtlSetPerUserRegistration", "int", 1, "cdecl")
DllCall("autoit_opencv_com454.dll\DllRegisterServer", "cdecl")

cv := ComObjCreate("OpenCV.cv")
img := cv.imread("D:\Unnamed.bmp")
cv.imshow("Image", img)
cv.waitKey()
cv.destroyAllWindows()

; unregister com
DllCall("autoit_opencv_com454.dll\DllUnregisterServer", "cdecl")
DllCall("FreeLibrary", "ptr", hOpencv)
DllCall("FreeLibrary", "ptr", hOpencvCom)

Рисование контура:

cv := ComObjCreate("OpenCV.cv")
img := cv.imread("D:\Unnamed.bmp")
img_grey := cv.cvtColor(img, CV_COLOR_BGR2GRAY := 6)
cv.threshold(img_grey, 100, 255, CV_THRESH_BINARY := 0)
thresh := cv.extended.1
contours := cv.findContours(thresh, CV_RETR_TREE := 3, CV_CHAIN_APPROX_SIMPLE := 2)
arr := ComObjArray(VT_VARIANT:=12, 4)
arr[0] := 0
arr[1] := 0
arr[2] := 255
arr[3] := 0
cv.drawContours(img, contours, -1, arr, 2)
cv.imshow("Image", img)
cv.waitKey()
cv.destroyAllWindows()

2

Re: AHK: OpenCV com

Класс! Спасибо, попробуем!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: OpenCV com

А в чём разница между vc14 и vc15?
Нагуглил, что разница в компиляторах, но пока не понял, какая разница практически.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: OpenCV com

Ну наверное не хотят пока убирать поддержку Visual Studio 2015.
Добавил 2ой пример с автоит форума.