ImageTarget Class¶
Inherits: Target
Description¶
ImageTarget表示平面图像的target,它可以被 ImageTracker 所跟踪。
ImageTarget的大小可以在json文件里设置并通过setup方法载入,或者如果没有在进口中提供,将会从图像分辨率计算。
ImageTarget内的数值在可以被读取之前需要首先通过setup方法载入。然后再通过 ImageTracker.loadTarget 或 ImageTracker.loadTargetBlocked 成功载入 ImageTracker 之后可以被 ImageTracker 检测和跟踪。
Constructor¶
- C: void easyar_ImageTarget__ctor(easyar_ImageTarget * * Return)¶
- C++11: ImageTarget()¶
- Traditional C++: ImageTarget()¶
- Java: public ImageTarget()¶
- Objective-C: + (easyar_ImageTarget *) create¶
- Swift (since EasyAR SDK 2.1.0): public convenience init()¶
setup¶
从一个json文件或json字符串配置target。这个方法只会解析json文件或字符串。
如果name非空则配置名字为name的target,否则配置第一个target。
如果 path 是json文件的路径,storageType应该设成 App 或 Assets 或 Absolute ,表示路径的类型。json文件内部的路径应该是绝对路径或相对于json文件的相对路径。
如果 path 是json字符串, storageType应该设成 (App | Json) 或 (Assets | Json) 或 ( Absolute | Json) 。json字符串里的路径应该是绝对路径或相对于storageType所指向的根目录的相对路径。
关于StorageType的详细描述参见 StorageType 。
- C: bool easyar_ImageTarget_setup(easyar_ImageTarget * This, easyar_String * path, int storageType, easyar_String * name)¶
- C++11: bool setup(std::string path, int storageType, std::string name)¶
- Traditional C++: bool setup(String * path, int storageType, String * name)¶
- Java: public native boolean setup(java.lang.String path, int storageType, java.lang.String name)¶
- Objective-C: - (bool)setup:(NSString *)path storageType:(int)storageType name:(NSString *)name¶
- Swift (since EasyAR SDK 2.1.0): public func setup(_ path: String, _ storageType: Int32, _ name: String) -> Bool¶
setupAll¶
从类型为 storageType 的 path 中配置json文件或json字符串中列出的所有target。关于storageType和json文件的详细描述参见setup和 StorageType 。
- C: void easyar_ImageTarget_setupAll(easyar_String * path, int storageType, easyar_ListOfPointerOfImageTarget * * Return)¶
- Traditional C++: static void setupAll(String * path, int storageType, ListOfPointerOfImageTarget * * Return)¶
- Java: public static native java.util.ArrayList<ImageTarget> setupAll(java.lang.String path, int storageType)¶
- Objective-C: + (NSArray<easyar_ImageTarget *> *)setupAll:(NSString *)path storageType:(int)storageType¶
- Swift (since EasyAR SDK 2.1.0): public static func setupAll(_ path: String, _ storageType: Int32) -> [ImageTarget]¶
size¶
返回image target的大小。这个大小只有在使用 ImageTracker.loadTarget 或 ImageTracker.loadTargetBlocked 成功加载入 ImageTracker ,或是通过setSize手动设置之后才是有效(非0)的。
如果size没有通过json或setSize设置,将会返回通过图像分辨率进行计算得出的默认大小。
- C: easyar_Vec2F easyar_ImageTarget_size(const easyar_ImageTarget * This)¶
- C++11: Vec2F size()¶
- Traditional C++: Vec2F size()¶
- Java: public native Vec2F size()¶
- Objective-C: - (easyar_Vec2F *)size¶
- Swift (since EasyAR SDK 2.1.0): public func size() -> Vec2F¶
setSize¶
设置image target的大小,设置之后会覆盖默认值以及在json文件中设的数值。
size将会在 ImageTracker.loadTarget 或 ImageTracker.loadTargetBlocked 调用之后通过图像分辨率重新计算。在计算之后,size的最大值将被保持不变,仍为最大值,另一个维度则通过分辨率计算更新。需要在target成功加载之后调用size来获取实际使用的size数值。
如果size长宽比例在设置的时候就保证和图像分辨率一致,则在计算之后size不会发生变化。
- C: bool easyar_ImageTarget_setSize(easyar_ImageTarget * This, easyar_Vec2F size)¶
- C++11: bool setSize(Vec2F size)¶
- Traditional C++: bool setSize(Vec2F size)¶
- Java: public native boolean setSize(Vec2F size)¶
- Objective-C: - (bool)setSize:(easyar_Vec2F *)size¶
- Swift (since EasyAR SDK 2.1.0): public func setSize(_ size: Vec2F) -> Bool¶
images¶
返回target中存储的图像列表。通常这个方法用来获取云端返回的target的识别图数据。
- C: void easyar_ImageTarget_images(easyar_ImageTarget * This, easyar_ListOfPointerOfImage * * Return)¶
- Traditional C++: void images(ListOfPointerOfImage * * Return)¶
- Java: public native java.util.ArrayList<Image> images()¶
- Objective-C: - (NSArray<easyar_Image *> *)images¶
- Swift (since EasyAR SDK 2.1.0): public func images() -> [Image]¶
runtimeID¶
返回target id。target id是运行时创建的整型数据,只有在成功的配置之后才是有效(非0)的。这个id是非0且全局递增的。
- C: int easyar_ImageTarget_runtimeID(const easyar_ImageTarget * This)¶
- C++11: int runtimeID()¶
- Traditional C++: int runtimeID()¶
- Java: public native int runtimeID()¶
- Objective-C: - (int)runtimeID¶
- Swift (since EasyAR SDK 2.1.0): public override func runtimeID() -> Int32¶
uid¶
返回target uid。target uid在云识别算法中使用。在没有接入云识别的时候,你可以在json配置中设置这个uid,在自己的代码中作为另一种区分target的方法。
- C: void easyar_ImageTarget_uid(const easyar_ImageTarget * This, easyar_String * * Return)¶
- C++11: std::string uid()¶
- Traditional C++: void uid(String * * Return)¶
- Java: public native java.lang.String uid()¶
- Objective-C: - (NSString *)uid¶
- Swift (since EasyAR SDK 2.1.0): public override func uid() -> String¶
name¶
返回target名字。名字用来在json文件中区分target。更多描述参见setup。
- C: void easyar_ImageTarget_name(const easyar_ImageTarget * This, easyar_String * * Return)¶
- C++11: std::string name()¶
- Traditional C++: void name(String * * Return)¶
- Java: public native java.lang.String name()¶
- Objective-C: - (NSString *)name¶
- Swift (since EasyAR SDK 2.1.0): public override func name() -> String¶
meta¶
返回setMetaData所设置的meta data。或者在云识别返回的target里面,返回云端服务器所设置的meta data。
- C: void easyar_ImageTarget_meta(const easyar_ImageTarget * This, easyar_String * * Return)¶
- C++11: std::string meta()¶
- Traditional C++: void meta(String * * Return)¶
- Java: public native java.lang.String meta()¶
- Objective-C: - (NSString *)meta¶
- Swift (since EasyAR SDK 2.1.0): public override func meta() -> String¶
setMeta¶
设置meta data。这个操作会覆盖上一次的设置或是云端返回的数据。
- C: void easyar_ImageTarget_setMeta(easyar_ImageTarget * This, easyar_String * data)¶
- C++11: void setMeta(std::string data)¶
- Traditional C++: void setMeta(String * data)¶
- Java: public native void setMeta(java.lang.String data)¶
- Objective-C: - (void)setMeta:(NSString *)data¶
- Swift (since EasyAR SDK 2.1.0): public override func setMeta(_ data: String) -> Void¶