IRC_Param.h
6.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/**
********************************************************************
* @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 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; //出厂的高温标定帧灰度标志位
U16_t *HighT_NineFrameAdd; //高温温度判定时的9帧综合数组
U16_t *HighT_NineFrame_Avg; //高温温度判定时的9帧综合数组平均值
unsigned int HighT_flag; //高温判定标志 0~9 0关闭,1~9 为计数
U16_t *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 气体增强模式
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,
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;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif