Files
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

78 lines
2.9 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef TGAIRTHPROCESS_H
#define TGAIRTHPROCESS_H
#include <QObject>
#include "GCycleQueue.h"
#include <thread>
#include "CommSerialDef.h"
#include "Arith/ImgProcessDll.h"
#include "IO/GIOParams.h"
using namespace std;
class TGAirthProcess : public QObject
{
Q_OBJECT
public:
explicit TGAirthProcess(QObject *parent = nullptr);
~TGAirthProcess();
void Start();
void Stop();
bool PushData(unsigned char* pFrameData, int nFrameSize);
bool GetData(unsigned char* pFrameData, int nFrameSize);
void SetImgFormat(GFrameFormat& p_ImgFormat);
private:
void ImgProcess(unsigned short *pSrc, unsigned char *pDst, int nWidth, int nHeight);
void ThreadFun_MappingData_Airth_0_PreDeal();
void ThreadFun_MappingData_Airth_1_DeGuoGai();
void ThreadFun_MappingData_Airth_2_DeBadPixel();
void ThreadFun_MappingData_Airth_3_Destrip();
void ThreadFun_MappingData_Airth_4_Y16Denoise_0();
void ThreadFun_MappingData_Airth_4_Y16Denoise_1();
void ThreadFun_MappingData_Airth_5_Y16DDE();
void ThreadFun_MappingData_Airth_6_Y16IDE();
void ThreadFun_MappingData_Airth_7_Y8Map();
typedef void (TGAirthProcess::*ThreadRunFunPtr)();
static void ThreadEntry(ThreadRunFunPtr pRunFun, void* pOwner);
public:
TG m_TGInfo;
MixMapPara m_MixMapPara;
MixMapOut m_MixMapOut;
private:
GCycleQueue m_varY16Data_IN; //输入的原始Y16数据
GCycleQueue m_varAirth_0_PreDeal; //有/无符号Y16数据经过预处理后的数据
GCycleQueue m_varAirth_1_DeGuoGai; //去锅盖后数据
GCycleQueue m_varAirth_2_DeBadPixel; //校坏点后数据
GCycleQueue m_varAirth_3_Destrip_0; //去竖条纹后数据
GCycleQueue m_varAirth_3_Destrip_1;
GCycleQueue m_varAirth_4_Y16Denois_0; //去噪声后数据
GCycleQueue m_varAirth_4_Y16Denois_1;
GCycleQueue m_varAirth_5_Y16DDE; //DDE数据
GCycleQueue m_varAirth_6_Y16IDE; //IDE数据调光后的Y8数据
GCycleQueue m_varY8Data_OUT; //IDE数据经过Y8纠偏、映射后得到的Y8数据
std::thread* m_ptrThread_Airth_0_PreDeal;
std::thread* m_ptrThread_Airth_1_DeGuoGai;
std::thread* m_ptrThread_Airth_2_DeBadPixel;
std::thread* m_ptrThread_Airth_3_Destrip;
std::thread* m_ptrThread_Airth_4_Y16Denoise_0;
std::thread* m_ptrThread_Airth_4_Y16Denoise_1;
std::thread* m_ptrThread_Airth_5_Y16DDE;
std::thread* m_ptrThread_Airth_6_Y16IDE;
std::thread* m_ptrThread_Airth_7_Y8Map;
bool m_bThreadRunning_MappingData;
GFrameFormat m_varGFrameFormat;
QMutex m_mutex0;
signals:
public slots:
};
#endif // TGAIRTHPROCESS_H