IRC_Param.h 6.3 KB
/**
 ********************************************************************
 * @file   IRC_Param.h
 *         IRC_Param.h
 *
 *********************************************************************
 */

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef IRC_CAMERA_PARAM_H
#define IRC_CAMERA_PARAM_H

/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"


#ifdef __cplusplus
extern "C" {
#endif

/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/

typedef struct IRC_param
{
    int DealWay; //0为JZSDK自带的红外处理,1为KT库的红外处理

    int Filp_V; //垂直翻转
    int Filp_H; //水平翻转

    int ImgDataBits; //图像位数
    int ExpectedMax; //最大灰度值
    int Gain;		//对比度,这里设为 11
    int LeftDrop;	//低灰度舍弃点数,这里设为 5000
    int RightDrop;	//高灰度舍弃点数,这里设为 5000
    int frameRate; //帧数

    //盲元数组,记录盲元的x y坐标
    unsigned int *Blind; 
    unsigned int BlindNum; //记录盲元的个数
    unsigned int BlindExtern;//盲元修正值,小于这个值需要修正,默认值为1000

    //坏点数组,记录坏点像素坐标
    //原图坏点
    unsigned int AutoBadPixelReset; //盲点纠正开关
    unsigned int AutoBadPixel_flag; //标志位

    unsigned int *BadPixel; 
    unsigned int BadPixelNum; //记录坏点的个数
    unsigned int BadPixelExtern;//盲元修正值,小于这个值需要修正,默认值为1000 
    //灰度图坏点
    unsigned int AutoGrayPixelReset; //盲点纠正开关
    unsigned int AutoGrayPixel_flag; //标志位
    
    unsigned int *GrayPixel; 
    unsigned int GrayPixelNum; //记录坏点的个数
    unsigned int GrayPixelExtern;//盲元修正值,小于这个值需要修正,默认值为1000 


    //单点校正(Single-Point Correction -> SPC)
    double *SPC_Diff;  // spc截距数组   即计算得到的增益
    double *SPC_Slope; // spc斜率数组   即计算得到的补正

    unsigned int FirstSPC_flag; //第一次使用spc的标志位
    unsigned int SPC_ResetFlag; //spc校准标志位 开启时进行spc校准

    U16_t *SPC_Mark_Data;   //spc标定帧灰度

    unsigned int SPC_mode; //spc模式 0低温画面打档 1手动打档 2定时打档
    unsigned int SPC_LastMode; //上一次spc模式

    unsigned int SPC_auto_time; //spc定时自动打档时间
    unsigned int SPC_auto_time_tpye;
    unsigned int SPC_auto_time_flag; //spc定时自动打档标志位,用于计算打档时间

    //两点矫正(Two-Point Correction -> TPC)
    double *TPC_Gain; // tpc斜率数组   即计算得到的校准增益
    double *TPC_Offset;  // tpc截距数组   即计算得到的校正偏移值 

    unsigned int TPC_ResetFlag; //tpc校准标志位 开启时进行tpc校准

    unsigned int TPC_mode; //tpc数据模式 0出厂数据 1手动数据A 2手动数据B 3手动数据C 4手动数据D
    unsigned int TPC_LastTPCMode; //上一次tpc数据模式

    //画面纠正模式
    unsigned int FrameCorrectMode; //画面纠正模式 0 无纠正 1 单点纠正 2 两点纠正

    // 高低温标定
    U16_t *Factory_HighT_Mark_Data; //出厂的高温标定帧灰度
    unsigned int Factory_HighT_Mark_Data_flag; //出厂的高温标定帧灰度标志位
    
    U16_t *Factory_LowT_Mark_Data; //出厂的低温标定帧灰度
    unsigned int Factory_LowT_Mark_Data_flag; //出厂的高温标定帧灰度标志位

    int *HighT_NineFrameAdd;       //高温温度判定时的9帧综合数组
    U16_t *HighT_NineFrame_Avg;      //高温温度判定时的9帧综合数组平均值
    unsigned int HighT_flag;                //高温判定标志 0~9 0关闭,1~9 为计数 

    int *LowT_NineFrameAdd; //低温温度判断时的9帧综合数组
    U16_t *LowT_NineFrame_Avg; //低温温度判定时的9帧综合数组平均值
    unsigned int LowT_flag;                   //低温判定标志 0~9 0关闭,1~9 为计数 

    //  伪彩模式
    unsigned int PseudoColorType; //伪彩模式

    // 气体增强
    U16_t *DGCE_Mark_Data;   //标定帧灰度
    U16_t *DGCE_Area;     //显色区域
    unsigned int DGCE_ColorType; //色彩模式 0 红 1 绿 2 蓝
    unsigned int DGCE_CurSubMarkedMin;  // 当前帧与标定帧的灰度值(均为 14 位)的最小差值    40
    unsigned int DGCE_CurSubMarkedMax;  // 当前帧与标定帧的灰度值(均为 14 位)的最大差值    240
    unsigned int First_DGCE_flag; //每次开气体增强时 第一次使用气体增强的标志位
    unsigned int DGCE_ResetFlag; //气体增强重置标志位 开启时进行气体增强重置

    unsigned int Width;
    unsigned int Height;
    unsigned int PixelNum; //像素个数
    unsigned int OutputPixelColorMode; //输出色彩模式 0 默认模式 1 伪彩模式 2 气体增强模式 3 气体增强模式2类

    unsigned int IRC_outPixelMode; //IRC输出像素模式 RGB888  YUV420

    unsigned int RingRepair; //环状修复

    //IRC画框坐标
    unsigned int RegionBox[4]; // 0 一号点x 1 一号点y 2 二号点x 3 二号点y

    //IRC画框模式
    unsigned int RegionMode; //IRC画框模式 0 无画框 1 十字 2 矩形 3 圆形
}IRC_param;


typedef enum TEMP_CHOOSE
{

    SPC_MARK_DATA = 4,
    HIGH_DGCE_THRESHOLD = 5,
    LOW_DGCE_THRESHOLD = 6,

    HIGH_TEMP_DATA = 7, //高温数据
    LOW_TEMP_DATA  = 8, //低温数据

    FACTORY_HIGH_TEMP = 10, //出厂高温数据
    FACTORY_LOW_TEMP  = 11, //出厂低温数据

    LOCAL_HIGH_TEMP_1 = 12, //手动高温数据1型
    LOCAL_LOW_TEMP_1  = 13, //手动低温数据1型

    LOCAL_HIGH_TEMP_2 = 14, //手动高温数据2型
    LOCAL_LOW_TEMP_2  = 15, //手动低温数据2型

    LOCAL_HIGH_TEMP_3 = 16, //手动高温数据3型
    LOCAL_LOW_TEMP_3  = 17, //手动低温数据3型

    LOCAL_HIGH_TEMP_4 = 18, //手动高温数据4型
    LOCAL_LOW_TEMP_4  = 19, //手动低温数据4型

    TEMP_CHOOSE_ENHANCE_COLOR = 20, //增强颜色
    TEMP_CHOOSE_ENHANCE_THRESHOLD = 21, //增强阈值
    TEMP_CHOOSE_PSEUDEO_COLOR = 22, //伪彩颜色

    
}TEMP_CHOOSE;

/* Exported types ------------------------------------------------------------*/

/* Exported functions --------------------------------------------------------*/

#ifdef __cplusplus
}
#endif

#endif