⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scaler.h

📁 相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数库
💻 H
字号:


#ifndef ___SCALER_H
#define ___SCALER_H

#include <dsylib.h>
#include <node.h>
#include <roi.h>

#include <lvpackon.h>



LVDSYCLASS LvScalerNode : public Lv1In1OutNode {

    private:

    protected:

    public:

        virtual U32BIT GetType(void) { return ND_Scaler; }
        virtual char FAR *GetName(void) { return "Scaler"; }

        virtual LVSTATUS ExecuteMCommand(U16BIT CmdId, U16BIT wParam, LVRAWPTR lParam, LVSTATUS *RetVal, LvPort *FromPort, U8BIT Direction);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height)=0;

                LvScalerNode(HDEVICE aDevice, U8BIT aModule, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
                ~LvScalerNode(void);

    };

LVDSYCLASS LvScaler_9406_1 : public LvScalerNode {
    private:

    protected:

        U8BIT *HScaleTable;
        U8BIT *VScaleTable;

        virtual U8BIT *CreateVScaleTable(void) { return NULL; }
        virtual U8BIT *CreateHScaleTable(void) { return NULL; }
        virtual LVSTATUS SetHScaleMask(U32BIT *HValue, U8BIT NrItem, U8BIT PackSize, U16BIT Total, U16BIT Width) { return I_NoError; }
        virtual LVSTATUS SetVScaleMask(U32BIT *HValue, U8BIT NrItem, U8BIT PackSize, U16BIT Total, U16BIT Height) { return I_NoError; }

    public:
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);

        LvScaler_9406_1(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvScaler_9406_1(void);

    };

LVDSYCLASS LvScaler_9406_2 : public LvScaler_9406_1 {
    private:

    protected:

        virtual U8BIT *CreateVScaleTable(void);
        virtual U8BIT *CreateHScaleTable(void);
        virtual LVSTATUS SetHScaleMask(U32BIT *HValue, U8BIT NrItem, U8BIT PackSize, U16BIT Total, U16BIT Width);
        virtual LVSTATUS SetVScaleMask(U32BIT *HValue, U8BIT NrItem, U8BIT PackSize, U16BIT Total, U16BIT Height);

    public:
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
        virtual LVSTATUS SetScaleMask(LvROI *Info, U16BIT Width, U16BIT Height);

        LvScaler_9406_2(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvScaler_9406_2(void);

    };




LVDSYCLASS LvPPXHpfScalerNode : public LvScalerNode {
    private:

    protected:
        U16BIT Mirrored;


    public:

        LvPPXHpfScalerNode(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvPPXHpfScalerNode(void);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
        virtual LVSTATUS ExecuteMCommand(U16BIT CmdId, U16BIT wParam, LVRAWPTR lParam, LVSTATUS *RetVal, LvPort *FromPort, U8BIT Direction);

    };

LVDSYCLASS LvPPCHpfScalerNode : public LvPPXHpfScalerNode {
    private:
    protected:
    public:

        LvPPCHpfScalerNode(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvPPCHpfScalerNode(void);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
    };

LVDSYCLASS LvPPXBrScalerNode : public LvScalerNode {
    private:
    protected:
    public:
        LvPPXBrScalerNode(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvPPXBrScalerNode(void);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
        virtual LVSTATUS ExecuteMCommand(U16BIT CmdId, U16BIT wParam, LVRAWPTR lParam, LVSTATUS *RetVal, LvPort *FromPort, U8BIT Direction);

    };


LVDSYCLASS Lv8000ScalerNode : public LvScalerNode {
    private:
    protected:
    public:
        Lv8000ScalerNode(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~Lv8000ScalerNode(void);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
        virtual LVSTATUS ExecuteMCommand(U16BIT CmdId, U16BIT wParam, LVRAWPTR lParam, LVSTATUS *RetVal, LvPort *FromPort, U8BIT Direction);
        virtual LVSTATUS TouchHardware(LvDFlowPortCfg *Cfg);

    };


LVDSYCLASS LvTW6800ScalerNode : public LvScalerNode {
    private:
    protected:
    public:
        LvTW6800ScalerNode(HDEVICE aDevice, U8BIT Module, U16BIT anId=0, LPSTR ExtName=NULL, LvNode *aParentNode=NULL);
        ~LvTW6800ScalerNode(void);
        virtual LVSTATUS SetScale(LvROI *Info, U16BIT Width, U16BIT Height);
        virtual LVSTATUS ExecuteMCommand(U16BIT CmdId, U16BIT wParam, LVRAWPTR lParam, LVSTATUS *RetVal, LvPort *FromPort, U8BIT Direction);
        virtual LVSTATUS TouchHardware(LvDFlowPortCfg *Cfg);

    };




#include <lvpackof.h>

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -