#ifndef _CommDef_H_ #define _CommDef_H_ #ifndef _byte_def_ #define _byte_def_ typedef unsigned char BYTE, Byte, byte; #endif #include #include using namespace std; #define DefaultImageWidth 1280 #define DefaultImageHeight 1024 #define DefaultMaxImageSize (1920*1080*4) #define BUFF_SIZE 1040 #define MAX_UP_SIZE 20*1024*1024 #define MAX_FRAME_LENGTH 32768 // 每包最大128字节有效数据 #define MAX_QUALITY_PARAMS 100 //质量评估计算指标个数 typedef unsigned short UINT16; //////////////////////////////////////////////////// #include #include enum EUFormatType { ETYPE_BIT = 0, //二进制 ETYPE_OX = 1, //带0x ETYPE_UX = 2, //不带0x }; enum EUConvertType { ECONVERT_OX = 0, //不带0x开头转换为0x开头的 ECONVERT_BIT = 1, //不带0x开头的转换成二进制(前面加12个字节) }; //机芯版本 enum EUSetSystemType { SYSTEM_FPGA_ISP1 = 0, //老版本ISP SYSTEM_FPGA_ISP2 = 1, //新版本ISP SYSTEM_ASIC = 2, //ASIC机芯 SYSTEM_BUTT }; // 像素类型 /* * @class Settings * @brief 串口参数设置 * * @param name 串口名称 * @param baudRate 波特率 * @param stringBaudRate 波特率字符串 */ struct ComSettings { QString name; qint32 baudRate; QString stringBaudRate; QSerialPort::DataBits dataBits; QString stringDataBits; QSerialPort::Parity parity; QString stringParity; QSerialPort::StopBits stopBits; QString stringStopBits; }; /************************************************ **调光算法设置信息 ************************************************/ typedef struct tagTG { int Y8MapIdx; //去锅盖 bool DeGuoGaiArith; bool GuoGaiModel; //时域滤波 bool IsTimeFilter; int TFSigma; //竖纹 int DestripArithIdx; int StripWeight; int StripStd; //去噪 int DenoiseArith; int DenoiseStd; //增强 int DDEArith; int DDEParam; int IDEArith; //bool CalcNUC = false; int FlagT; //bool CalcSNR = false; bool DeBadPixel; bool Clahe; unsigned short* GuogaiB; tagTG() { Y8MapIdx = 0; DeGuoGaiArith = false; GuoGaiModel = false; IsTimeFilter = false; TFSigma = 10; DestripArithIdx = 0; StripWeight = 3700; StripStd = 50; DenoiseArith = 0; DenoiseStd = 50; DDEArith = 0; DDEParam = 1; IDEArith = 0; FlagT = 0; DeBadPixel = false; Clahe = false; GuogaiB = NULL; } }TG; /************************************************ **机芯参数一键设置信息 ************************************************/ typedef struct tagEngInfo{ ushort Fps; //帧频 ushort Width; //分辨率宽 ushort Height; //分辨率高 ushort SoftVerA; //软核版本号 ushort SoftVerX; //软核版本号 ushort SoftVerY; //软核版本号 ushort SoftYear; //软核版本年 ushort SoftMon; //软核版本月 ushort SoftDay; //软核版本日 ushort LogicVerA; //逻辑版本号 ushort LogicVerX; //逻辑版本号 ushort LogicVerY; //逻辑版本号 ulong SENIdNum; //机器识别码 tagEngInfo() { Fps = 50; Width = 640; Height = 512; SoftVerA = 1; SoftVerX = 0; SoftVerY = 0; SoftYear = 2021; SoftMon = 12; SoftDay = 25; LogicVerA = 1; LogicVerX = 0; LogicVerY = 0; SENIdNum = 0; } }EngInfo; typedef struct tagSenInfo{ ushort AccWkTime; //设置工作时间 ushort SENIntMode; //积分模式 ushort SENUPCOL; //UPCOL ushort SENUPROW; //UPROW ushort OpenWindowSW; //开窗开关 ushort ADSHIFT; //AD延迟 ushort MultSampSw; //多倍采样开关 ushort AspectSw; //采样相位开关 ushort MultSampStPix; //输出起始点 ushort AspectValue; //相位值 ushort MultSampNum; //参与平均点数 ushort AdSeqType; //排列顺序 ushort AdValidSrc; //数据有效选择 tagSenInfo() { AccWkTime = 100; SENIntMode = 0; SENUPCOL = 1; SENUPROW = 1; OpenWindowSW = 0; ADSHIFT = 12; MultSampSw = 0; AspectSw = 0; MultSampStPix = 3; AspectValue = 0; MultSampNum = 1; AdSeqType = 1; AdValidSrc = 0; } }SenInfo; typedef struct tagVCoreInfo{ ushort SyncMode; //同步模式 ushort IntTime[16]; //各档位积分时间 ushort ImgMode; //视频源模式 ushort LvdsVMode; //LVDS视频模式 ushort TestVMode; //测试画面 ushort TestVScope; //测试图像作用域 ushort Freeze; //图像冻结开关 ushort CharSw; //字符开关 ushort VideoSw; //模拟视频开关 tagVCoreInfo() { SyncMode = 0; ImgMode = 0; LvdsVMode = 1; TestVMode = 1; TestVScope = 2; Freeze = 0; CharSw = 1; VideoSw = 1; } }VCoreInfo; typedef struct tagXFilterInfo{ ushort XFilterMode; //时域滤波开关 ushort XFilterPar; //时域滤波强度 ushort Y8NoiseMode; //Y8去噪开关 ushort Y8NoiseThres; //Y8去噪参数 tagXFilterInfo() { XFilterMode = 1; XFilterPar = 3; Y8NoiseMode = 1; Y8NoiseThres = 1; } }XFilterInfo; typedef struct tagBpInfo{ ushort BPThres; //坏点阈值 ushort ReplaceMode; //坏点替换方式 ushort ReplaceSw; //坏点替换开关 ushort ReplaceType; //坏点替换开关 tagBpInfo() { BPThres = 25; ReplaceMode = 0; ReplaceSw = 1; ReplaceType = 0; } }BpInfo; typedef struct tagAutoBpInfo{ ushort AutoBPSw; //动态坏点开关 ushort BPLoopFrms; //坏点考察帧数 ushort NoiseH; //判断平坦阈值 ushort BPDiffTres; //平坦区域判断坏点阈值 tagAutoBpInfo() { AutoBPSw = 0; BPLoopFrms = 8; NoiseH = 200; BPDiffTres = 20; } }AutoBpInfo; typedef struct tagGGInfo{ ushort GGSw; //锅盖开关 tagGGInfo() { GGSw = 0; } }GGInfo; typedef struct tagReStripeInfo{ ushort ReStripeSw; //去竖条开关 ushort ReStripeHoriSw; //去横纹开关 ushort RestripeWinSize; //窗口大小 ushort MoveThres; //运动检测阈值 ushort ReStripeSigmaIndex; //sigma值 ushort ReStripeThres; //Thres值 ushort ReStripeWeight; //权重 ushort ReStripeHoriThres; //横纹阈值 tagReStripeInfo() { ReStripeSw = 1; ReStripeHoriSw = 1; RestripeWinSize = 9; MoveThres = 1; ReStripeSigmaIndex = 70; ReStripeThres = 15; ReStripeWeight = 3700; ReStripeHoriThres = 15; } }ReStripeInfo; typedef struct tagNlMeansInfo{ ushort NlMeansSw; //空域开关 ushort NlMeansThres; //空域强度 ushort MoveCompensateSw; //运动补偿开关 tagNlMeansInfo() { NlMeansSw = 1; NlMeansThres = 2; MoveCompensateSw = 1; } }NlMeansInfo; typedef struct tagDDEInfo{ ushort DDEDegree; //DDE强度 ushort DDESw; //DDE开关 ushort DDEY8Degree; //DDE强度 tagDDEInfo() { DDEDegree = 1; DDESw = 1; DDEY8Degree = 1; } }DDEInfo; typedef struct tagIDEInfo{ ushort IDESw; //IDE开关 ushort IDESigmaIndex; //sigma值 ushort IDEPar; //强度 tagIDEInfo() { IDESw = 0; IDESigmaIndex = 25; IDEPar = 0; } }IDEInfo; typedef struct tagBBHEInfo{ ushort LightMode; //调光模式 ushort LineBright; //Y8Range ushort LineContrast; //Y8Mean ushort Y8Range; //Y8Range ushort Y8Mean; //Y8Mean ushort LinePer; //LinePer ushort HistPer; //HistPer ushort TL; //TL ushort TR; //TR ushort Contrast; //Contrast ushort Bright; //Bright ushort ConLimit; //ConLimit ushort RangeChangeSw; //RangeChange开关 ushort Y8ABCSw; //Y8_adjust开关 ushort Y16OutStream; //Y16数据流输出 ushort Y8OutStream; //Y8数据流输出 tagBBHEInfo() { LightMode =2; Y8Range =230; Y8Mean =40; LinePer =1; HistPer =1; TL =300; TR =100; Contrast =50; Bright =50; ConLimit =6144; RangeChangeSw =1; Y8ABCSw =1; LineBright = 50; LineContrast = 50; Y16OutStream = 1; Y8OutStream = 1; } }BBHEInfo; typedef struct tagCLAHEInfo{ ushort CLAHESw; //分块调光开关 ushort CLAHELimit; //分块调光参数 ushort CLAHEUseSw; //使用计算开关 tagCLAHEInfo() { CLAHESw = 0; CLAHELimit = 410; CLAHEUseSw = 0; } }CLAHEInfo; typedef struct tagDehazeInfo{ ushort DehazeSw; //去雾开关 ushort DehazeSelect; //去雾表号 tagDehazeInfo() { DehazeSw = 0; DehazeSelect = 1; } }DehazeInfo; typedef struct tagPaletteInfo{ ushort HotSelect; //极性 ushort Psec; //伪彩 tagPaletteInfo() { HotSelect = 0; Psec = 0; } }PaletteInfo; typedef struct tagGeomTransInfo{ ushort MirrorMode; //镜像 ushort ZoomRatio; //无极放大 ushort Zoom; //电子放大 tagGeomTransInfo() { MirrorMode = 0; ZoomRatio = 1000; Zoom = 0; } }GeomTransInfo; typedef struct tagCursorInfo{ ushort CursorType; //光标类型 ushort CursorX; //光标X坐标 ushort CursorY; //光标Y坐标 ushort CursorXCenter; //中心放大X坐标 ushort CursorYCenter; //中心放大Y坐标 tagCursorInfo() { CursorType = 0; CursorX = 320; CursorY = 256; CursorXCenter = 320; CursorYCenter = 256; } }CursorInfo; typedef struct tagAutoFocusInfo{ ushort WinX; //自动聚焦窗X坐标 ushort WinY; //自动聚焦窗Y坐标 ushort WinLen; //自动聚焦窗宽 tagAutoFocusInfo() { WinX =320; WinY =256; WinLen =256; } }AutoFocusInfo; typedef struct tagSoftStateInfo{ ushort AutoBaseMode; //本底档位模式 ushort AutoIntMode; //积分档位模式 ushort AutoBCMode; //亮度/对比度模式 ushort ADMax; //ADMax ushort ADMin; //ADMin ushort FovFlag1; //FovFlag1 ushort FovFlag2; //FovFlag1 ushort SceneType; //场景类型 tagSoftStateInfo() { AutoBaseMode = 0; AutoIntMode = 1; AutoBCMode = 0; ADMax = 8000; ADMin = 4000; FovFlag1 = 1500; FovFlag2 = 2500; SceneType = 0; } }SoftStateInfo; typedef struct tagAutoSetInfo{ EngInfo Eng; SenInfo Sen; VCoreInfo VCore; XFilterInfo XFilter; BpInfo Bp; AutoBpInfo AutoBp; GGInfo GG; ReStripeInfo ReStripe; NlMeansInfo NlMeans; DDEInfo DDE; IDEInfo IDE; BBHEInfo BBHE; CLAHEInfo CLAHE; DehazeInfo Dehaze; PaletteInfo Palette; GeomTransInfo GeomTrans; CursorInfo Cursor; AutoFocusInfo AutoFocus; SoftStateInfo SoftState; }AutoSetInfo; typedef struct tag_ImageAssessRect { UINT16 xpos; //像素起始X坐标 UINT16 ypos; //像素起始y坐标 UINT16 width; //像素宽度 UINT16 height; //像素高度 }ImageAssessRect; typedef struct tag_ImageX16Mix { UINT16 nImageWidth; //图像宽度 UINT16 nImageHeight; //图像高度 int nHighTempre; //高温本底温度 int nLowTempre; //低温本底温度 }ImageX16Mix; typedef struct tag_ImageY8BadPoint { UINT16 nImageWidth; //图像宽度 UINT16 nImageHeight; //图像高度 int nWinHalf; //检测半径 int nThresh; //检测阈值 int nPos; //无效区域位置 }ImageY8BadPoint; typedef struct tagUpdataHead { int devid; //文件类型 int softNum; //文件编号 int majVer; //大版本 int subVer; //小版本 int year; int month; int day; }UpdataHead; #endif // _CommDef_H