AHK调用opencv(七)鼠标作为画笔

AHK调用opencv(七)鼠标作为画笔

#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")

global cv := ComObjCreate("OpenCV.cv")
img := cv.imread("test.png") ;读取图片
global showImg := img.clone()
cv.namedWindow("Image")
proc := RegisterCallback("drawcircle", "F")
DllCall("opencv_world455.dll\cvSetMouseCallback", "Astr", "Image", "ptr", proc, "ptr", 0)

drawcircle(event, x, y, flag){
    ToolTip, % event "`n" x " " y "`n" flag
    If (event == 1){ ;鼠标左键按下
        cv.circle(showImg, ComArrayMake([x,y]), 100, ComArrayMake([255,0,0]), 0) ;画圆
    }
}

While true{
    cv.imshow("Image", showImg)
}

ComArrayMake(inputArray) ;这个函数用来转换参数,比如函数原来需要(0,0),调用这个函数ComArrayMake([0,0])就可以转换过去
{
	arr := ComObjArray(VT_VARIANT:=12, inputArray.Length())
	Loop,% inputArray.Length()
	{
		arr[A_Index-1] := inputArray[A_Index]
	}
	return arr
}

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

 

天黑版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'))
img := cv.imread("image/test.png")
cv.namedWindow("image")
cv.moveWindow("image", 100, 100)

cv.setMouseCallback('image', drawcircle)
proc := CallbackCreate(drawcircle)

drawcircle(event, x, y, flag){
    ToolTip event "`n" x " " y "`n" flag
    If (event == 1){ ;鼠标左键按下
        cv.circle(img, [x, y], 100, [255,0,0], 0) ;画圆
    }
}

While true{
    cv.imshow("image", img)
}

cv.waitKey()
cv.destroyAllWindows()

有错误请联系我改正!

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

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

AHK使用vba函数

2022-2-21 10:17:25

其他

[第五关]数组相邻对调

2022-2-21 10:20:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索