jna-项目用到Tess4J,涉及JNA,请问如何取得IntByReference类型变量获取到的C++数组

问题描述

项目用到Tess4J,涉及JNA,请问如何取得IntByReference类型变量获取到的C++数组

用到Tesseract开源项目来做文字简单的识别,查看所需要的函数的C++源码是这样的:

 /** Returns an array of all word confidences, terminated by -1. */
int* TessBaseAPI::AllWordConfidences() {
  if (tesseract_ == NULL ||
      (!recognition_done_ && Recognize(NULL) < 0))
    return NULL;
  int n_word = 0;
  PAGE_RES_IT res_it(page_res_);
  for (res_it.restart_page(); res_it.word() != NULL; res_it.forward())
    n_word++;

  int* conf = new int[n_word+1];
  n_word = 0;
  for (res_it.restart_page(); res_it.word() != NULL; res_it.forward()) {
    WERD_RES *word = res_it.word();
    WERD_CHOICE* choice = word->best_choice;
    int w_conf = static_cast<int>(100 + 5 * choice->certainty());
                 // This is the eq for converting Tesseract confidence to 1..100
    if (w_conf < 0) w_conf = 0;
    if (w_conf > 100) w_conf = 100;
    conf[n_word++] = w_conf;
  }
  conf[n_word] = -1;
  return conf;
}

而其java提供的接口函数是:

 IntByReference TessBaseAPIAllWordConfidences(TessBaseAPI handle);

涉及到的JNA是com.sun.jna.ptr.IntByReference,现在需要获取IntByReference变量的所有值,使用getValue方法只能获取到一个数。求做过相关内容的帮忙指点一下啦!

解决方案

http://blog.csdn.net/lmj623565791/article/details/23960391

时间: 2024-12-12 16:02:05

jna-项目用到Tess4J,涉及JNA,请问如何取得IntByReference类型变量获取到的C++数组的相关文章

android-想实现Android的火车票查询功能,请问火车票数据从哪里获取?

问题描述 想实现Android的火车票查询功能,请问火车票数据从哪里获取? 想用Android开发火车票的查询功能,包括到达每站的时刻,所用时间,火车票价,经过的站点! 请问有现成的火车票数据?一般情况下,这些火车票数据都是从哪里获取到的? 解决方案 1.聚合网,要申请APPKEY,网址:http://www.juhe.cn/docs/api/id/22 2.webservice的,http://webservice.webxml.com.cn//WebServices/TrainTimeWeb

c++-请问C++中,如何获取字符数组的有效长度?(截止到“”)

问题描述 请问C++中,如何获取字符数组的有效长度?(截止到"") 请问,在C++中,如何获取字符数组的有效长度?(截止到"")? 解决方案 for(int i=0;;i++){ if(charArray[i]=='n') break; else sum++;} 解决方案二: 用函数strlen或者自己循环int i = 0;while (str[i++] != '');return i; 解决方案三: 有个函数叫strlen().你查一下函数参考手册就知道了 用m

登录后allGroups为空,请问要怎么做才能获取该用户的allgroups

问题描述 登录后allGroups为空,请问要怎么做才能获取该用户的allgroups. 解决方案 EMGroupManager.getInstance().asyncGetGroupsFromServer(new EMValueCallBack<List<EMGroup>>() { @Override public void onSuccess(List<EMGroup> value) { // TODO Auto-generated method stub grou

jna java c++ dll-最近用JNA技术,实现java调用C++的DLL,如何用java模拟c++的链表结构体。

问题描述 最近用JNA技术,实现java调用C++的DLL,如何用java模拟c++的链表结构体. C++结构体 struct CUser_DataStruct { char pKKSCoding[128]; //标签点Kks编码 DWORD time; //UTC时间 WORD millisecond; //毫秒 int nDataState; //数据状态 double dValue; //数值 CUser_DataStruct* pNext; //指向下一个数据节点的指针 }; C++的入

项目-问个菜鸟问题。请问这其中的图标分别是什么啊?

问题描述 问个菜鸟问题.请问这其中的图标分别是什么啊? https://code.csdn.net/2013ossurvey 标题下面就有十个图标 我所知道的只有五个:chrome firefox gnu linux 和android 剩下的五个分别是什么啊?请问 解决方案 依次为:chrome,osc(开源中国),openstack, firefox,FreeBSD,linux,gnu,android,Blender,红宝石(ruby中国社区)

请问用什么方法可以获取搜狐评论排行中的新闻列表

问题描述 搜狐评论列表url: http://comment.news.sohu.com/djpm/我想得到里头的热门新闻.用了httpclient+htmlcleaner 还是不行原因:请求到的html文件是一堆乱码,用了gbk(页面中设置的charset是gbk), utf-8, utf-16, ascii都还是不行.请问各位大侠:有什么其它比较好的方法可以解决这个问题?或者除了httpclient外还有没有更好的请求网页的工具?求解答,不甚感激! 问题补充:flootball 写道 解决方

请问如何在WEB服务器端获取访问WEB应用的地址?

问题描述 如题,我只知道从request中可以获取,但是要从request中获取就必须要有请求.我现在希望是在WEB应用服务器启动后,就把这个访问地址放到一个变量中(例如某个类的静态字段或者系统属性).然后其他地方可以直接使用这个值.Stringurl=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"

小弟不才!又来问问题了!请问LINQ to SQL 怎么样获取SQL 存储过程的多个结果集!!!!!!!!

问题描述 如题,大虾米赐教! 解决方案 解决方案二:IMultipleResults

JNA入门实例

JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C.C++代码,尤其是底层库文件(windows中叫dll文件,linux下是so[shared object]文件).   JNI是Java调用原生函数的唯一机制,JNA就是建立在JNI之上,JNA简化了Java调用原生函数的过程.JNA提供了一个动态的C语言编写的转发器(实际上也是一个动态链接库,在Linux-i386中文件名是:libjnidispatch.so)可以自动实现Java