Files
2025-03-26 01:06:45 +08:00

168 lines
6.3 KiB
C

/*****************************************************************************
* HBaseGP.h
*****************************************************************************
*
* Project: HALCON/libhalcon
* Description: Basic tools
*
* (c) 1996-2018 by MVTec Software GmbH
* www.mvtec.com
*
*****************************************************************************
*
*
*/
#ifndef HBASEGP_H
#define HBASEGP_H
#if defined(__cplusplus)
extern "C" {
#endif
extern HLibExport Herror HSetImageTime(Hproc_handle proc_handle,Himage *image);
extern HLibExport Herror HImageName2Type(const char *str, HINT *kind);
extern HLibExport Herror HPrepNewImage(Hproc_handle proc_handle, HIMGDIM width,
HIMGDIM height);
extern HLibExport double Hatan2(double x, double y);
extern HLibExport Herror HStripQuotes(Hproc_handle proc_handle, char *in,
char **out);
/* for some functions we have an old version without the Hproc_handle parameter
* -> keep them for binary compatibility (The progress versions before
* HALCON 18.12 must be binary compatible with all current
* image acquisition interfaces released with HALCON 13)
* and a new version with Hproc_handle for optimizing the memory allocation */
extern HLibExport char* HGetHalconRoot();
extern HLibExport char* HGetHalconRootPh(Hproc_handle ph);
extern HLibExport char* HGetHalconLibraryPath();
extern HLibExport char* HGetHalconLibraryPathPh(Hproc_handle ph);
extern HLibExport HBOOL HSetEnv(const char *name, const char *value);
extern HLibExport HBOOL HSetEnvPh(Hproc_handle ph, const char *name,
const char *value);
extern HLibExport char* HGetEnv(const char *name);
extern HLibExport char* HGetEnvPh(Hproc_handle ph, const char *name);
extern HLibExport void HGetEnvFree(char* mem);
extern HLibExport Herror HGetEnvFreePh(Hproc_handle ph, char* mem);
extern HLibExport char* HGetEnvRaw(Hproc_handle ph, const char *name);
extern HLibExport Herror HIncrRL(Hproc_handle proc_handle);
extern HLibExport Herror HIncrRLNum(Hproc_handle proc_handle, size_t num);
extern HLibExport Herror HCopyData(const void *source, void *destination,
size_t size);
extern HLibExport Herror HSetData(void *c, HINT val, size_t size);
#define HBackupDataLocal(PROC_HANDLE,SRC_PTR,NUM,DEST_PTR) \
HXBackupDataLocal(PROC_HANDLE,\
(const VOIDP)SRC_PTR,\
sizeof(*SRC_PTR)*NUM,\
(VOIDP)(DEST_PTR))
extern HLibExport Herror HXBackupDataLocal(Hproc_handle proc_id,
const VOIDP source, size_t size,
VOIDP destination);
#define HRestoreData(SRC_PTR,NUM,DEST_PTR) \
HCopyData((const VOIDP)SRC_PTR,\
(VOIDP)(DEST_PTR),\
sizeof(*SRC_PTR)*NUM)
extern HLibExport Herror HClearData(VOIDP c, size_t size);
extern HLibExport Herror HCopyImage(const Himage *in, Himage *out);
extern HLibExport Herror HClearImage(Himage *image);
extern HLibExport Herror HSetImage(Himage *image, double grayval);
extern HLibExport Herror HAdaptImsize(Hproc_handle proc_handle, HIMGDIM width,
HIMGDIM height);
extern HLibExport Herror HFreeTmpImage(Hproc_handle proc_handle,
Himage *image);
extern HLibExport Herror HTmpImage(Hproc_handle proc_handle, Himage *image,
HINT kind, HIMGDIM width, HIMGDIM height,
HBOOL clear);
extern HLibExport Herror HFreeLocalImage(Hproc_handle proc_handle,
Himage *image);
extern HLibExport Herror HLocalImageToGlobal(Hproc_handle proc_handle,
Himage *image);
extern HLibExport Herror HLocalImage(Hproc_handle proc_handle, Himage *image,
HINT kind, HIMGDIM width, HIMGDIM height,
HBOOL clear);
extern HLibExport Herror HCrImage(Hproc_handle proc_handle, Hkey key_in,
HINT num, HINT type, HIMGDIM width,
HIMGDIM height, Hkey *key_out,
Himage *image);
extern HLibExport Herror HCrImageMatrix(Hproc_handle proc_id, Himage *image,
Hkey key);
extern HLibExport Herror HCrImageMKeyCkD(Hproc_handle proc_handle,
Hrlregion *domain[],
Hkey key_in[], HINT num_keys,
HINT num, HINT type, HIMGDIM width,
HIMGDIM height, Hkey *key_out,
Himage *image);
extern HLibExport Herror HCrImageMKey(Hproc_handle proc_handle,
Hkey key_in[], HINT num_keys,
HINT num, HINT type, HIMGDIM width,
HIMGDIM height, Hkey *key_out,
Himage *image);
extern HLibExport Herror HFreeImage(Hproc_handle proc_handle, Himage *image);
extern HLibExport Herror HNewImage(Hproc_handle proc_handle, Himage *image,
HINT kind, HIMGDIM width, HIMGDIM height);
extern HLibExport Herror HAllocImageMatrix(Hproc_handle proc_handle,
Himage *image, HINT kind,
HIMGDIM width, HIMGDIM height,
HBOOL clear);
extern HLibExport Herror HNewImagePtr(Hproc_handle proc_handle, Himage *image,
HINT kind, HIMGDIM width, HIMGDIM height,
VOIDP data, HBOOL initImg);
Herror HSortDouble(Hproc_handle proc_handle, double *array,
INT4_8 num, HBOOL ascending);
Herror HSortINT4_8(Hproc_handle proc_handle, INT4_8 *array,
INT4_8 num, HBOOL ascending);
Herror HSortString(Hproc_handle proc_handle, char **array,
INT4_8 num, HBOOL ascending);
Herror HSortHcpar(Hproc_handle proc_handle, Hcpar *array,
INT4_8 num, HBOOL ascending);
#if defined(__cplusplus)
}
#endif
#endif