KSJAPI SDK · 高级与专有功能
图像格式/负片、FFC 平场校正、畸变校正、预曝光、缓存;线阵 AWAIBA、条码解码;参数与厂商区固化。
本组聚合 KSJApiCustom.h、KSJApiAwaiba.h、KSJApiBarcodeReader.h、KSJApiProgram.h、KSJApiUserZone.H。
KSJApiInternal.h为凯视佳内部调试接口,不对外提供,误用可能导致相机异常甚至损坏,此处不列出。
函数一览
| 函数 | 说明 |
|---|---|
KSJ_SetImageFormat |
设置图像输出数据格式(KSJ_IMAGE_FORMAT)。 |
KSJ_GetImageFormat |
获取图像输出数据格式。 |
KSJ_SetNegativeImageMode |
设置图像负片输出。 |
KSJ_GetNegativeImageMode |
获取图像是否负片输出。 |
KSJ_GlobalResetShutterSet |
设置全局复位滚动快门。 |
KSJ_GlobalResetShutterGet |
获取全局复位滚动快门状态。 |
KSJ_SetFlatFieldCorrectionFieldOfView |
设置 FFC(平场校正)参考视场。 |
KSJ_GetFlatFieldCorrectionFieldOfView |
获取 FFC 参考视场。 |
KSJ_MakeDarkFrame |
采集参考黑图(FFC 用;可指定张数做平均,非必须,不采集则黑图默认全黑)。 |
KSJ_MakeFlatFieldFrame |
采集参考白图(FFC 用;可指定张数做平均)。 |
KSJ_PreviewSetFlatFieldCorrection |
设置预览流是否进行 FFC 校正。 |
KSJ_PreviewGetFlatFieldCorrection |
获取预览流 FFC 校正状态。 |
KSJ_CaptureSetFlatFieldCorrection |
设置采集流是否进行 FFC 校正。 |
KSJ_CaptureGetFlatFieldCorrection |
获取采集流 FFC 校正状态。 |
KSJ_SaveFlatFieldCorrection |
保存当前 FFC 参考值到文件。 |
KSJ_LoadFlatFieldCorrection |
加载 FFC 参考信息文件。 |
KSJ_PreExposureRangeGet |
获取预曝光时间范围(仅部分定制相机支持)。 |
KSJ_PreExposureTimeSet |
设置预曝光时间。 |
KSJ_PreExposureTimeGet |
获取预曝光时间。 |
KSJ_PreExposureLinesSet |
设置预曝光行。 |
KSJ_PreExposureLinesGet |
获取预曝光行。 |
KSJ_SetBufferCount |
设置预览图像缓存数量。 |
KSJ_GetBufferCount |
获取预览图像缓存数量。 |
KSJ_GetUsbState |
获取 USB 连接状态(全速 / 高速 / USB3.0)。 |
KSJ_SetCalibration |
设置是否进行畸变校正处理。 |
KSJ_GetCalibration |
获取畸变校正处理状态。 |
KSJ_CalibrationProgram |
将畸变校正参数写入相机内部。 |
KSJ_CalibrationReadout |
从相机内部读取畸变校正参数。 |
KSJ_SetCalibrationMapMode |
设置畸变校正目标值计算方法(最邻近 / 双线性)。 |
KSJ_GetCalibrationMapMode |
获取畸变校正目标值计算方法。 |
KSJ_LoadCalibrationMapFile |
从文件加载畸变校正参数信息。 |
KSJ_AWAIBA_IsUsed |
判断当前相机是否为 AWAIBA 线阵传感器相机。 |
KSJ_AWAIBA_GetSegmentNum |
取得线阵相机的区段数目。 |
KSJ_AWAIBA_GetGainRange |
获取指定区段增益范围。 |
KSJ_AWAIBA_SetGain |
设置指定区段增益。 |
KSJ_AWAIBA_GetGain |
获取指定区段增益。 |
KSJ_AWAIBA_GetBlackLevelRange |
获取指定区段黑电平范围。 |
KSJ_AWAIBA_SetBlackLevel |
设置指定区段黑电平。 |
KSJ_AWAIBA_GetBlackLevel |
获取指定区段黑电平。 |
KSJ_AWAIBA_AutoBlackLevel |
对指定区段进行自动黑平衡。 |
KSJ_AWAIBA_SetSplitSegment |
设置奇偶列分离(目前仅 4K 相机有效)。 |
KSJ_AWAIBA_GetSplitSegment |
获取奇偶列分离状态。 |
KSJ_ProgramLineCameraParam |
将当前线阵相机参数保存到相机中(断电量连后自动加载)。 |
KSJ_LoadLineCameraParam |
将线阵相机设置恢复到保存的状态。 |
KSJ_ClearLineCameraParam |
删除当前线阵相机保存的参数。 |
KSJBR_CreateInstance |
创建条码解码库句柄(该模块成功返回码为 0)。 |
KSJBR_DestroyInstance |
释放解码库资源。 |
KSJBR_SetTimeOut |
设置解码超时时间(ms)。 |
KSJBR_GetTimeOut |
获取解码超时时间。 |
KSJBR_SetCodeType |
设置条码类型(BARCODETYPE 位掩码)。 |
KSJBR_GetCodeType |
获取当前条码类型。 |
KSJBR_SetLocalizationMode |
设置条码定位方式(LOCALIZATIONMODE)。 |
KSJBR_GetLocalizationMode |
获取条码定位方式。 |
KSJBR_SetCodeGrayType |
设置条码颜色(黑 / 白 / 两者)。 |
KSJBR_GetCodeGrayType |
获取条码颜色设置。 |
KSJBR_SetExpectedBarcodesCount |
设置最大条码数量。 |
KSJBR_GetExpectedBarcodesCount |
获取最大条码数量。 |
KSJBR_InitRuntimeSettingsWithFile |
使用配置文件设置解码库参数。 |
KSJBR_Decode |
对一帧图像进行条码解码。 |
KSJBR_FreeTextResults |
释放条码结果资源。 |
KSJ_LutInfoProgram |
设置 LUT 信息(LUT 表大小,应为 2^10 / 2^12 / 2^14)。 |
KSJ_LutInfoReadout |
读取 LUT 信息。 |
KSJ_HWBMatrixProgram |
设置硬件白平衡参数。 |
KSJ_HWBMatrixReadout |
获取硬件白平衡参数(默认值)。 |
KSJ_HWBMatrixUpload |
获取当前硬件执行的白平衡参数(连续白平衡时会变化)。 |
KSJ_HCCMMatrixProgram |
设置硬件 CCM 参数。 |
KSJ_HCCMMatrixReadout |
获取硬件 CCM 参数(默认值)。 |
KSJ_HCCMMatrixUpload |
获取当前硬件执行的 CCM 参数。 |
KSJ_LutFileProgram |
将 LUT 数据从文件下载到硬件(断电保存)。 |
KSJ_LutDataProgram |
将 LUT 数据下载到硬件。 |
KSJ_LutDataReadout |
读取相机 LUT 数据。 |
KSJ_ParamProgram |
将当前相机主要参数(预览/采集视场、曝光、增益)保存到相机。 |
KSJ_LoadParamFromCamera |
将相机中保存的参数应用到相机。 |
KSJ_ParamErase |
擦除相机内保存的参数。 |
KSJ_SaveParamToFile |
将当前相机参数保存到文件。 |
KSJ_LoadParamFromFile |
用参数文件设置到当前相机。 |
KSJ_EEPROMTypeGet |
获取相机存储器芯片类型。 |
KSJ_WrEEPROM |
写 EEPROM(24LC64 / 24LC128 型号)。 |
KSJ_RdEEPROM |
读 EEPROM(24LC64 / 24LC128 型号)。 |
KSJ_WrEEPROMEx |
写 EEPROM(24LC1024 型号)。 |
KSJ_RdEEPROMEx |
读 EEPROM(24LC1024 型号)。 |
KSJ_WrEEPROMExEx |
批量写 EEPROM(24LC1024)。建议改用 KSJ_WrEEPROMExExSafe。 |
KSJ_RdEEPROMExEx |
批量读 EEPROM(24LC1024)。 |
KSJ_WrEEPROMExExSafe |
批量写 EEPROM(对存储区域做了限制)。 |
关键函数详解
KSJ_SetFlatFieldCorrectionFieldOfView
int __stdcall KSJ_SetFlatFieldCorrectionFieldOfView(int nIndex, int nColStart, int nRowStart, int nColSize, int nRowSize, KSJ_ADDRESSMODE AmCol, KSJ_ADDRESSMODE AmRow, unsigned short wMultiFrameNum);
设置 FFC(平场校正)参考视场。
返回:成功返回 RET_SUCCESS(1)
说明
- 使能 FFC 时所设置的视场必须与参考视场一致才能校正;拼接帧共用同一校正参数。
KSJBR_CreateInstance
int KSJBR_CreateInstance(HANDLE* phReader);
创建条码解码库句柄(该模块成功返回码为 0)。
返回:成功返回 0(RET_SUCCESS 在本模块为 0)
说明
- 使用解码功能前必须先创建句柄;不再使用时用
KSJBR_DestroyInstance释放。
KSJBR_Decode
int KSJBR_Decode(HANDLE hReader, BarcodeResultArray** pResults, unsigned char* pBufferBytes, int nWidth, int nHeight, int nStride);
对一帧图像进行条码解码。
返回:成功返回 0
说明
- 输入图像必须是 8 位灰度图;结果用完后须调用
KSJBR_FreeTextResults释放。
KSJ_ParamProgram
int __stdcall KSJ_ParamProgram(int nIndex);
将当前相机主要参数(预览/采集视场、曝光、增益)保存到相机。
返回:成功返回 RET_SUCCESS(1)
说明
- 保存后相机断电重连、软件重启会自动加载这些参数。
KSJ_ParamErase
int __stdcall KSJ_ParamErase(int nIndex);
擦除相机内保存的参数。
返回:成功返回 RET_SUCCESS(1)
说明
- 擦除后相机重新上电将恢复出厂设置。
KSJ_WrEEPROMExExSafe
int __stdcall KSJ_WrEEPROMExExSafe(int nIndex, unsigned long ulRomAdress, unsigned char* pData, int nBytes);
批量写 EEPROM(对存储区域做了限制)。
返回:成功返回 RET_SUCCESS(1)
说明
- 务必使用本函数:普通写 EEPROM 若误写入非用户区域,可能造成相机运行异常甚至返厂维修。
- 用户可写区域:24LC64 → 0x1EE0-0x1FDF;24LC128 → 0x3DE0-0x3FDF;24LC1024 → 0x3FBE0-0x3FFDF。
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com