如何使用Luxand_FaceSDK的问题?具体就是使用前如何设置???

lcy2282718 2012-08-08 04:53:26
做人脸识别,用Luxand_FaceSDK这个接口,但是初始化激活就是激活不了,引用了这个接口的文件了,在程序中完全没有作用,不知道是不是初始化激活的问题,我看官方的文档还说要设置环境变量,有没有用过这个接口的大神给点指导啊,跪求啊~~~
下面是代码:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.sun.image.codec.jpeg.*;

import Luxand.*;
import Luxand.FSDK.*;
import Luxand.FSDKCam.*;


public class Test {
public static void Read() throws IOException{
String dir = "E:\\Face\\image\\";


String FileName =dir+ "s26.JPG";
String OutFileName =dir+ "CC\\s26.JPG";
FileInputStream sFile = new FileInputStream(FileName);//创建一个FileInputStream对象从源图片获取数据流

System.out.println(sFile.toString());
//FSDK.ActivateLibrary("PS0xw1mYYlhazKnudmZ3Y0vrQfghBPeEliKAstAd3KZkcAvMFAVY0iu0b0LbyHsTj5lwzymlP8MG7sd8wt9UYMJvu4/ffZfNdcXa93UBzq5k1z0ycjpEAExV33HtpgspKKthoVP/V5tkmdyVeVb/vJJ6KIHtlJ56O4TtR8fYTNI=");
try {
System.out.println("+++++++++++++++++++++++++");
int r=FSDK.ActivateLibrary("fMxbVqM7fFrmPGOaBilJPh9uc0AleViMyafV4BIEIhBSHxq1FT+z+9Ju7I6olJjX6HeXlTC0NDDjESpE+vpKhyhfnPGjEWKotm76kcwoNt88iIIXCnBQvDQfS5UBEFoHqXwSleq8KuAbszqnYd3qMJW5qjR795cmxSuANUjuQA0=");

System.out.println(r);
if (r != FSDK.FSDKE_OK){
System.out.println("1111111111111111111111111");
System.exit(r);
}
else{
System.out.println("4444444444444444444444");
}
}
catch(java.lang.UnsatisfiedLinkError e) {
System.out.println("333333333333333333");
System.exit(1);
}

System.out.println("222222222222222");

FSDK.SetFaceDetectionParameters(false, true, 384);
HImage hi=new HImage();
TFacePosition.ByReference tf=new TFacePosition.ByReference ();
int ff=FSDK.LoadImageFromFile(hi,FileName);
int fc=FSDK.DetectFace(hi,tf);

int left = tf.xc - tf.w/2;
int top = tf.yc - tf.w/2;
Image src = javax.imageio.ImageIO.read(sFile);//创建一个Image对象并以源图片数据流填充
int width = src.getWidth(null);//得到源图宽
int height = src.getHeight(null);//得到源图长
if(width> 70&&height> 30){
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//创建一个BufferedImage来作为图像操作容器
Graphics g = image.getGraphics();//创建一个绘图环境来进行绘制图象
g.drawImage(src,0,0,width,height,null);//将原图像数据流载入这个BufferedImage
// g.setColor(Color.red);
// g.fillRect(0,0,100,100);
g.setColor(Color.blue);
// g.drawRect(160,50,80,110);
g.drawRect(left, top, tf.w, tf.w);
// g.setFont(new Font( "Verdana ",Font.PLAIN,18)); //设定文本字体
// String rand = "WWW.CNCHINA.ORG ";
// g.setColor(Color.yellow); //设定文本颜色
// g.drawString(rand,width-200,height-10); //向BufferedImage写入文本字符
g.dispose(); //使更改生效
FileOutputStream outi = null;
try {
outi = new FileOutputStream(OutFileName);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //创建输出文件流

outi.close();
FSDK.Finalize();//关闭输出文件流
}
}
}

输出是:java.io.FileInputStream@55e55f
+++++++++++++++++++++++++
333333333333333333


也就是说在try中只进行到了System.out.println("+++++++++++++++++++++++++");后面的激活就没有运行,然后就到异常了,我这是什么问题啊,求用过这个API的大神给点指点。。。
...全文
141 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧