人脸识别功能,从易转AU3
本帖最后由 chenronting 于 2013-8-3 19:43 编辑首先,感谢“dzq1980”朋友的辛勤工作,并分享如此美妙的作品。
原地址:http://bbs.eyuyan.com/read.php?tid=331422
言归正传,我想把此功能转化到AU3里来,也就是dzq1980 提供的DLL文件里的功能
有会易语言的朋友能帮忙从这个文件里提取出来吗?
下面图片是易语言使用的DLLCALL的格式
这里我再附上我自己研究的结果,不对之处,请多指教!
Global $file= "C:\Documents and Settings\Administrator\My Documents\下载\r\测试图片2.jpg"
Global $file1 = "C:\Documents and Settings\Administrator\My Documents\下载\r\haarcascade_frontalface_alt.xml"
Local $str = "wchar;wchar;double;int;int;int;wchar"
Local $b = DllStructCreate($str)
DllStructSetData($b ,1,$file);照片地址
DllStructSetData($b ,2,$file1);XML文件地址,必要
DllStructSetData($b ,3,"1.3");缩放比例
DllStructSetData($b ,4,"10");像素大小
DllStructSetData($b ,5,2);检测次数
DllStructSetData($b ,6,1);模式,1为路径,2为BMP数据集
MsgBox(0,0,DllStructGetData($b ,1))
$a=DllCall("OpenCV.dll", _
"int","Distinguish", _
"char",DllStructGetData($b ,1), _
"char",DllStructGetData($b ,2), _
"double",DllStructGetData($b ,3), _
"double",DllStructGetData($b ,3), _
"int",DllStructGetData($b ,4), _
"int",DllStructGetData($b ,4), _
"int",DllStructGetData($b ,5), _
"int",DllStructGetData($b ,6), _
"char",DllStructGetData($b ,7))
MsgBox(0,$a,DllStructGetData($b ,7))
原来是没有使用 DllStructCreate 的,但这个 DLL 文件应该是C/C++建立的,就使用了。
不知我这样使用是否正确,也请一并指教之,谢谢。
测试结果都是没有得到数据
看来是没有人呢,都一天了。来一张美女图,勾引一下!!!
感谢之至! 三个是你图片修改工具画的? 看起来挺炫的。。路过,不懂,等高手来 回复 2# auto
当然不是画的,这是软件自己判断出来的,就是我上传的那个附件。你可以下载看一下, 但需要安装易语言。 本帖最后由 rchockxm 于 2013-8-3 23:40 编辑
回复 3# chenronting
Autoit 3.3.9.14 Beta
Global $File1 = "D:\3.JPG"
Global $File2 = "C:\haarcascade_frontalface_alt.xml"
Global $DllStruct = DllStructCreate("wchar;wchar;double;int;int;int;wchar")
DllStructSetData($DllStruct, 1, $File1)
DllStructSetData($DllStruct, 2, $File2)
DllStructSetData($DllStruct, 3, "1.3")
DllStructSetData($DllStruct, 4, "10")
DllStructSetData($DllStruct, 5, 2)
DllStructSetData($DllStruct, 6, 1)
DllStructSetData($DllStruct, 7, "")
Global $Dll =DllCall("OpenCV.dll", _
"int", "Distinguish", _
"str", DllStructGetData($DllStruct, 1), _
"str", DllStructGetData($DllStruct, 2), _
"double", DllStructGetData($DllStruct, 3), _
"double", DllStructGetData($DllStruct, 3), _
"int", DllStructGetData($DllStruct, 4), _
"int", DllStructGetData($DllStruct, 4), _
"int", DllStructGetData($DllStruct, 5), _
"int", DllStructGetData($DllStruct, 6), _
"str", DllStructGetData($DllStruct, 7))
MsgBox(0, "Test", $Dll)
返回277,103,365,191我這樣是有東西的
能自動畫圖嗎? 这个厉害啊。不是很懂。 楼主,OpenCV是开源的,下载地址:http://www.opencv.org.cn/index.php/Download
然后解压到任意目录,samples目录下就有大量的例子。 Main()
Func Main()
Local $hDll = DllOpen('OpenCV.dll')
Local $sImage = @ScriptDir & '\测试图片1.jpg'
Local $sCascadeFile = @ScriptDir & '\haarcascade_frontalface_alt.xml'
Local $tBuffer = DllStructCreate('char')
Local $Ret = DllCall($hDll, 'int', 'Distinguish', 'str', $sImage, 'str', $sCascadeFile, 'double', 1.3, 'double', 1.3, 'int', 3, 'int', 3, 'int', 2, 'int', 1, 'ptr', DllStructGetPtr($tBuffer))
If @error = 0 Then MsgBox(0, '', DllStructGetData($tBuffer, 1))
DllClose($hDll)
EndFunc上面这个是楼主所以提供的DLL的调用代码,但经测不能运行于NT6
同时只能用模式1
从链接提供的工程代码来看,DLL还有很多问题 回复 7# ceoguang
超版辛苦了。
问个与本主题无关的问题,有无关于二维码QR CODE的解码插件?一直在寻找这方面的。 回楼上,见http://trac.koka-in.org/libdecodeqr
libdecodeqr同样是开源的,同样使用了OpenCV,多多少少与这个贴扯上了点关系 回复 9# ceoguang
谢过超版,直奔链接。
注意休息,身体是革命的本钱。 图片很撩人 很强大啊 不知道LZ的头像能识别不… 回复 4# rchockxm
怪了,为什么我这里提示数组错误呢?你那里是什么环境? 回复 7# ceoguang
是吗,我这里是WIN7 X64的, 看来得换个环境试试。谢谢提醒 。@.@ 回复 7# ceoguang
经测试,WIN7X64,无法得到结果,而XP可以。请问超版有什么好的解决方案吗?
页:
[1]
2