KSJAPI SDK · 高级与专有功能

版本 1.0 · 更新于 2026-10-21 · 阅读 0

图像格式/负片、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。