使用易语言,在WIN7 X64下面虽然识别速度慢了4倍,但还是能识别出来。
这说明他的DLL应该是没有问题的,不知为何到AU3里就不行了?
是否我们使用的数据类型,在两种系统里要做不同的判断?
本人对此类事情没有头绪,也无基础,请求超版支持!感激不尽!! 学习一下。 回复 17# sango
问题还没得到解决, 请速来支援~~~~ 回复 7# ceoguang
2003服务器系统测试成功。看来还真是NT6的内核就不行啊。只是为何那个易可以呢 看来是没有人能解决了。算了,就只在Nt 5 下使用也行~~~ 回复 19# chenronting
6楼的BIN可以在你的NT6上运行不?
我不懂E
更不知道E的是不是调用同一个DLL
int _stdcall Distinguish(char* image, char* CascadeFile, double ImgScale, double FaceScale, int Size1, int Size2, int Frequency, int Mode, char* RetFace)
{
string strFace;
int retInt;
Mat img;
switch(Mode)
{
case 1:
img = imread( image, 1 );//读入lena图片
strFace=FaceDistinguish(img, CascadeFile, ImgScale, FaceScale, Size1, Size2, Frequency);
break;
case 2:
{
if(PictureFormatJudge(image,FORMAT_BMP)==1)
{
IplImage *pImg=BmpTOIpl(image);//bmp转IplImage
cvFlip(pImg,NULL,0);//图像垂直翻转
Mat img1(pImg,0);
img=img1;
strFace=FaceDistinguish(img, CascadeFile, ImgScale, FaceScale, Size1, Size2, Frequency);
cvReleaseImage(&pImg);//释放图
}else
{
strFace="图像格式错误,目前只支持BMP格式";
retInt=0;
}
}
break;
default:
strFace="检测方式错误";
retInt=0;
break;
}
strcpy(RetFace,strFace.c_str());
return retInt;
上面是DLL的代码
NT6产生的异常位于opencv_objdetect24x.dll中,异常类型为0xC0000005
应该是由DLL代码中if( !cascade.load( CascadeFile ) )//从指定的文件目录中加载级联分类器这句引起的,但是我找不到这个成员函数load的代码,所以无法帮你修复.
不过可以换种方式,如果6#的bin能执行能成功,改成DLL也不是什么难事 回复 6# ceoguang
你提供的程序无法执行。提示“程序无法正常启动~~~~~” 这个学习dll调用的好例子 楼主这于强大, 楼主这于强大, 话说,这样的功能主要用在什么地方?还真不知道。 对这方面很感想去,希望能解答
页:
1
[2]