插件参考手册

MRPic Class

MRPic是基于图片识别的混合现实/增强现实的总体实现类。

 

Ø成员变量:

 

public int Width:现实场景图像的宽度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实宽度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedWidth。

 

public int Height:现实场景图像的高度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实高度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedHeight。

 

Ø成员函数:

 

public void init(string cparam_name, string markersConfigDataFilePathC)
描述:初始化基于图片识别算法。
参数:cparam_name是相机标定参数文件的路径,markersConfigDataFilePathC是识别图片Marker配置文件的路径

 

public void mainLoop(byte[] im, int height, int width, float[] pose)
描述:从捕获的现实图像中识别目标图片,获得目标图片的位姿参数。

参数:im是相机捕获的现实图像,height是im图像的高度像素值,width是im图像的宽度像素值,pose是识别出目标图片的位姿参数(长度为12的float型数组,由3*4行存储位姿矩阵按行优先顺序排列)。

 

public void cleanup()
描述:清除中间计算数据。建议单次识别流程或者程序结束时执行。

 

public float[] getPose()
描述:返回识别出目标图片的位姿参数(长度为12的float型数组,由3*4行存储位姿矩阵按行优先顺序排列)。

 

ØMRSlam Class

 

MRSlam是SLAM空间感知的总体实现类。

 

Ø成员变量:

 

public int Width:现实场景图像的宽度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实宽度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedWidth。

 

public int Height:现实场景图像的高度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实高度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedHeight。

 

Ø成员函数:

 

public bool Init(string strVocFile, string strSettingsFile)
描述:初始化SLAM算法。
参数:strVocFile是词袋文件路径,strSettingsFile是相机参数文件路径。加载文件成功时函数返回值为true,加载文件失败时函数返回值为false。

 

public bool MonoTracking(byte[] im, int height, int width, float[] pose)
描述:从捕获的现实图像中进行SLAM计算,获得相机的位姿参数。
参数:im是相机捕获的现实图像,height是im图像的高度像素值,width是im图像的宽度像素值,pose是SLAM计算出的相机位姿参数(长度为16的float型数组,由4*4行存储位姿矩阵按行优先顺序排列)。跟踪状态正常时函数返回值为true,跟踪跟丢时函数返回值为false。

 

public void Shutdown()
描述:清空单次SLAM计算流程后的无用数据。每次要更换单次SLAM初始化使用的现实场景图像时都需要先执行Shutdown后再执行Init。

 

public void SLAMStarter()
描述:控制单次SLAM流程的开启和关闭,需要在Unity中设置UI交互来触发。

 

public float[] getPose()
描述:返回SLAM计算出的相机位姿参数(长度为16的float型数组,由4*4行存储位姿矩阵按行优先顺序排列)。

 

ØMRFaceDetection Class

 

MRFaceDetection是人脸检测的总体实现类。

 

Ø成员变量:

 

public int Width:现实场景图像的宽度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实宽度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedWidth。

 

public int Height:现实场景图像的高度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实高度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedHeight。

 

Ø成员函数:

 

public void MRFaceInit(string faceFilename, string eyeFilename, string eyeglassesFilename)
描述:初始化人脸检测算法。
参数:faceFilename是人脸特征数据文件路径,eyeFilename是人眼特征数据文件路径,eyeglassesFilename是戴眼镜人脸特征数据文件路径。

 

public bool MRdetectFace(byte[] inputsdk/images, int rect_x, int rect_y, int rect_width, int rect_height, int height, int width)
描述:从捕获的现实图像中进行人脸检测计算,获得人脸区域的矩形参数。
参数:inputsdk/images是相机捕获的现实图像,rect_x是人脸区域矩形左上角点的x坐标,rect_y是人脸区域矩形左上角点的y坐标,rect_width是人脸区域矩形的宽度,rect_height是人脸区域矩形的高度,height是inputsdk/images图像的高度像素值,width是inputsdk/images图像的宽度像素值。检测到人脸时函数返回值为true,检测不到人脸时函数返回值为false。

 

public void FaceDetectStarter()
描述:控制单次人脸识别流程的开启和关闭,需要在Unity中设置UI交互来触发。

 

public Rect getFaceRegion()
描述:返回检测出的人脸区域的矩形(相对于运行时实际现实场景图像的大小)。

 

ØMRText Class

 

MRText是字符识别的总体实现类。

 

Ø成员变量:

public int Width:现实场景图像的宽度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实宽度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedWidth。

 

public int Height:现实场景图像的高度像素值。因各手机支持的摄像头分辨率不同,因此现实场景图像的真实高度像素值在运行时才能根据具体硬件平台确定。该参数对应Unity中WebCamTexture类的构造函数public WebCamTexture(int requestedWidth, int requestedHeight)中的requestedHeight。

 

public string language:需要识别的字符所属的语言,当前支持英文eng和简体中文chi_sim两种。

public string whitelist:识别字符白名单,即识别出的字符只在该字符集范围内。

 

Ø成员函数:

public bool MRInitTextDetect(string junior_classifier, string senior_classifier)
描述:初始化文本检测算法。
参数:junior_classifier是一级分类器文件路径,senior_classifier是二级分类器文件路径。

 

public int MRTextDetect(byte[] inputsdk/images, int height, int width)
描述:从捕获的现实图像中进行文本检测计算。
参数:inputsdk/images是相机捕获的现实图像,height是inputsdk/images图像的高度像素值,width是inputsdk/images图像的宽度像素值。函数返回当前inputsdk/images中检测到的文本区域个数。如执行该函数之前没有执行MRinitTextDetect则会返回-1。

 

public bool MRGetTextDetectRect(int num, int x, int y, int width, int height)
描述:给定检测出的文本区域的序号,获得该序号文本区域矩形的参数。
参数:num是序号,需要配合MRTextDetect的返回值使用。x是文本区域矩形左上角点的x坐标,y是文本区域矩形左上角点的y坐标,width是文本区域矩形的宽度,height是文本区域矩形的高度。如num超出MRTextDetect的返回值范围,或者MRTextDetect没有检测出任何文本区域时,函数返回值为false。

 

public bool MRInitOCR(string datapath, string language, string whitelist)
描述:初始化字符识别算法。
参数:datapath是字符识别语言库文件夹的父文件夹的路径(最后包含“/”符号),language是字符识别所属语言,whitelist是字符识别白名单。

 

public IntPtr MRTextRecognize(int num, int confidence)
描述:给定检测出的文本区域的序号,获得该序号文本区域识别出的字符串。
参数:num是序号,需要配合MRTextDetect的返回值使用。confidence是该次字符识别的置信度(0~100的整数,越大说明置信度越高)。函数返回指向识别出的字符串的指针。

 

public void MRClearTextDetectRect()
描述:清空单次文本检测流程后的无用数据。如每帧都进行MRTextDetect计算,则在该帧使用完输出数据后执行MRClearTextDetectRect。

 

public void TextRecognizeStarter()
描述:控制单次字符识别流程的开启和关闭,需要在Unity中设置UI交互来触发。

 

public string getOCRText()
描述:返回识别出的字符串。