关于Halcon C++常用的两种数据结构Hobject和HTuple

简介: 关于Halcon C++常用的两种数据结构Hobject和HTuple

HALCON里面有很多数据类型,但是通过的导出向导工具导出后,就剩下两种数据类型:Hobject  HTuple。一个是图像  一个是数据。


头文件有定义这两个C++类:


C:\Program Files\MVTec\HALCON-18.11-Progress\include\halconcpp\HObject.h


C:\Program Files\MVTec\HALCON-18.11-Progress\include\halconcpp\HTuple.h


HObject

// Represents an instance of an iconic object(-array). Base class for images, regions and XLDs
class LIntExport HObject : public HObjectBase
{
public:
  // Create an uninitialized instance
  HObject():HObjectBase() {}
  // Copy constructor
  HObject(const HObject& source) : HObjectBase(source) {}
  // Create HObject from object id. For copy=false takes
  // over management of input key. Type of key must match!
  explicit HObject(Hkey key, bool copy=true);
  // Access of object tuple element
  const HObject operator [] (Hlong index) const;
  // Deep copy of all data represented by this object instance
  HObject Clone() const;
  /***************************************************************************
   * Operators                                                               *
   ***************************************************************************/
  // Calculate the difference of two object tuples.
  HObject ObjDiff(const HObject& ObjectsSub) const;
  // Convert an "integer number" into an iconic object.
  void IntegerToObj(const HTuple& SurrogateTuple);
  // Convert an "integer number" into an iconic object.
  void IntegerToObj(void* SurrogateTuple);
  // Convert an iconic object into an "integer number."
  HTuple ObjToInteger(Hlong Index, Hlong Number) const;
  // Copy an iconic object in the HALCON database.
  HObject CopyObj(Hlong Index, Hlong NumObj) const;
  // Concatenate two iconic object tuples.
  HObject ConcatObj(const HObject& Objects2) const;
  // Select objects from an object tuple.
  HObject SelectObj(const HTuple& Index) const;
  // Select objects from an object tuple.
  HObject SelectObj(Hlong Index) const;
  // Compare iconic objects regarding equality.
  Hlong CompareObj(const HObject& Objects2, const HTuple& Epsilon) const;
  // Compare iconic objects regarding equality.
  Hlong CompareObj(const HObject& Objects2, double Epsilon) const;
  // Compare image objects regarding equality.
  Hlong TestEqualObj(const HObject& Objects2) const;
  // Number of objects in a tuple.
  Hlong CountObj() const;
  // Informations about the components of an image object.
  HTuple GetChannelInfo(const HString& Request, const HTuple& Channel) const;
  // Informations about the components of an image object.
  HString GetChannelInfo(const HString& Request, Hlong Channel) const;
  // Informations about the components of an image object.
  HString GetChannelInfo(const char* Request, Hlong Channel) const;
#ifdef _WIN32
  // Informations about the components of an image object.
  HString GetChannelInfo(const wchar_t* Request, Hlong Channel) const;
#endif
  // Name of the class of an image object.
  HTuple GetObjClass() const;
  // Create an empty object tuple.
  void GenEmptyObj();
  // Displays image objects (image, region, XLD).
  void DispObj(const HWindow& WindowHandle) const;
  // Read an iconic object.
  void ReadObject(const HString& FileName);
  // Read an iconic object.
  void ReadObject(const char* FileName);
#ifdef _WIN32
  // Read an iconic object.
  void ReadObject(const wchar_t* FileName);
#endif
  // Write an iconic object.
  void WriteObject(const HString& FileName) const;
  // Write an iconic object.
  void WriteObject(const char* FileName) const;
#ifdef _WIN32
  // Write an iconic object.
  void WriteObject(const wchar_t* FileName) const;
#endif
  // Deserialize a serialized iconic object.
  void DeserializeObject(const HSerializedItem& SerializedItemHandle);
  // Serialize an iconic object.
  HSerializedItem SerializeObject() const;
  // Insert objects into an iconic object tuple.
  HObject InsertObj(const HObject& ObjectsInsert, Hlong Index) const;
  // Remove objects from an iconic object tuple.
  HObject RemoveObj(const HTuple& Index) const;
  // Remove objects from an iconic object tuple.
  HObject RemoveObj(Hlong Index) const;
  // Replaces one or more elements of an iconic object tuple.
  HObject ReplaceObj(const HObject& ObjectsReplace, const HTuple& Index) const;
  // Replaces one or more elements of an iconic object tuple.
  HObject ReplaceObj(const HObject& ObjectsReplace, Hlong Index) const;
private:
  // Verify matching semantic type ('object')!
  void AssertObjectClass();
};
相关文章
|
6月前
|
存储 C++ 索引
c++数据结构
c++数据结构
51 3
|
3月前
|
安全 编译器 C语言
【C++数据结构】string的模拟实现
【C++数据结构】string的模拟实现
|
1月前
|
NoSQL Redis C++
Redis的实现五:二叉堆的数据结构和TTL、c,c++的实现
这篇文章详细探讨了二叉堆的数据结构及其在C和C++中的实现,特别强调了二叉堆在Redis中实现TTL(生存时间)功能的重要性,并通过代码示例展示了如何在Redis中使用二叉堆来管理键的过期时间。
41 0
|
4月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
29 1
|
5月前
|
存储 算法 程序员
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
56 4
|
5月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
5月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
5月前
|
存储 算法 C++
【数据结构与算法】:带你手搓顺序表(C/C++篇)
【数据结构与算法】:带你手搓顺序表(C/C++篇)
|
4月前
|
存储 算法 C++
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
64 0
|
6月前
|
存储 算法 Java
数据结构/C++:红黑树
数据结构/C++:红黑树
41 3