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

📄 imagemanager.h

📁 智能小车导航
💻 H
字号:
// ImageManager.h: interface for the CImageManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_IMAGEMANAGER_H__CBCD6132_E1AD_4958_9131_22D6DC2AAD0E__INCLUDED_)
#define AFX_IMAGEMANAGER_H__CBCD6132_E1AD_4958_9131_22D6DC2AAD0E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "CGDef.h"
#include "CGVideo.h"
#include "CGVidEx.h"

typedef enum tagATTR_TYPE
{	
	ATTR_SOURCE_TYPE      =0,  //  -视频输入源
	ATTR_VIDEO_FORMAT     =1,  //  -图像颜色空间选择
	ATTR_VIDEO_STANDARD   =2,  //  -制式标准
	ATTR_VIDEO_SCANMODE   =3,  //  -扫描方式
	ATTR_VIDEO_GAMMACORR  =4,  //  -Gamma校正
	ATTR_VIDEO_MIRROR     =5,  //  -图像镜像
	ATTR_VIDEO_CRYOSC     =6,  //  -晶振选择 
	ATTR_VIDEO_BRIGHTNESS =7,  //  -亮度
    ATTR_VIDEO_CONTRAST	  =8,  // -对比度
	ATTR_VIDEO_HUE        =9,  // -色调
	ATTR_VIDEO_SATURATION =10, // -饱和度
	ATTR_ALL              =11, //-所有属性           
}ATTR_TYPE;

typedef struct 
{
	bool m_bCard1Opened;//第一路卡是否打开
	bool m_bCard2Opened;//第二路卡是否打开
	bool m_bCard3Opened;//第三路卡是否打开
	bool m_bCard4Opened;//第四路卡是否打开
}CARD_OPEN_STATE;

typedef struct 
{
	bool m_bCard1Capturing;//第一路卡是否正在采集图像至静态内存
	bool m_bCard2Capturing;//第二路卡是否正在采集图像至静态内存
	bool m_bCard3Capturing;//第三路卡是否正在采集图像至静态内存
	bool m_bCard4Capturing;//第四路卡是否正在采集图像至静态内存
}CARD_CAPTURE_STATE;

typedef struct 
{
	HCG m_hCard1;//第一路卡句柄
	HCG m_hCard2;//第二路卡句柄
	HCG m_hCard3;//第三路卡句柄
	HCG m_hCard4;//第四路卡句柄
}CARD_HANDLE;

typedef struct 
{
	DWORD m_dwInputMemOffset_Card1;//第一路卡的静态内存偏移量
	DWORD m_dwInputMemOffset_Card2;//第二路卡的静态内存偏移量
	DWORD m_dwInputMemOffset_Card3;//第三路卡的静态内存偏移量
	DWORD m_dwInputMemOffset_Card4;//第四路卡的静态内存偏移量
	
	DWORD m_dwInputMemSize_Card1;//第一路卡的静态内存大小
	DWORD m_dwInputMemSize_Card2;//第二路卡的静态内存大小
	DWORD m_dwInputMemSize_Card3;//第三路卡的静态内存大小
	DWORD m_dwInputMemSize_Card4;//第四路卡的静态内存大小

	HGLOBAL m_gOutputImage_Card1;
	BYTE *m_pucOutputImage_Card1;//第一路卡的用户内存指针
	HGLOBAL m_gOutputImage_Card2;
	BYTE *m_pucOutputImage_Card2;//第二路卡的用户内存指针
	HGLOBAL m_gOutputImage_Card3;
	BYTE *m_pucOutputImage_Card3;//第三路卡的用户内存指针
	HGLOBAL m_gOutputImage_Card4;
	BYTE *m_pucOutputImage_Card4;//第四路卡的用户内存指针

}CARD_MEM_STATE;


typedef struct 
{
	VIDEO_SOURCE m_VideoSource;        //视频源
	VIDEO_FORMAT m_VideoFormat;        //视频格式
	VIDEO_STANDARD m_VideoStandard;    //制式
	VIDEO_SCAN m_VideoScanMode;        //扫描方式
	GAMMA_CORR m_VideoGammaCorr;       //Gamma校正
	MIRROR_DIRECTION m_VideoMirror;    //镜像方式
	CRY_OSC m_CryOsc;                  //晶振
	bool m_bMirrorEnabled;             //镜像使能
	BYTE m_byteBrightness;             //亮度值
	BYTE m_byteHue;                    //色调值
	BYTE m_byteContrast;               //对比度值
	BYTE m_byteSaturation;             //饱和度值
	UINT m_imageWidth;                 //图像宽度像素数量
	UINT m_imageHeight;                //图像高度像素数量
}CARD_PROPERTY;



class CImageManager  
{
public:
	CImageManager();
	virtual ~CImageManager();

public:
	BOOL OpenCard(int nCardNo);
	void SetOutImageSize(int nWidthInPixelsCard1,int nHeightInPixelsCard1,
						 int nWidthInPixelsCard2,int nHeightInPixelsCard2,
						 int nWidthInPixelsCard3,int nHeightInPixelsCard3,
						 int nWidthInPixelsCard4,int nHeightInPixelsCard4);
	BOOL ShowImage(HDC hDC,CRect rcShow,int imageWidth,int imageHeight,BYTE *pData);
	BOOL FreeOutImageMem(int nCardNo);
	BOOL SetOutImageMem(int nCardNo);
	BOOL SnapOneToMem(int nCardNo);
	BOOL StopCapture(int nCardNo);
	BOOL BeginCapture(int nCardNo);
	BOOL AllocateInputMemForCards();
	void InitCardsProperty();
	BOOL CloseCard(int nCardNo);	
	BOOL UpdateCardAttribute(int nCardNo, ATTR_TYPE nType);
	BOOL SetInputViewSize(int nCardNo,int nWidth,int nHeight);
    void TrasformToCardOutMem(int nCardNo,BYTE *pOriginData,VIDEO_FORMAT nOriginFormat);	


	short g_phei;
	float g_v;
	void RobertOperator(BYTE *pSrc,BYTE *pDes, int w, int h);
	void Binary(BYTE *pData, int nThreshod,int w,int h);
	void FindLine(BYTE *pData, int w, int h);

	CARD_OPEN_STATE m_CardOpenState;   //四路卡打开标志
	CARD_CAPTURE_STATE m_CardCapState; //四路卡采集标志
	CARD_MEM_STATE m_CardMemState;     //四路卡内存设置
	CARD_HANDLE m_CardHandle;          //四路卡句柄
	CARD_PROPERTY m_CardProperty1;     //第一路卡属性变量
	CARD_PROPERTY m_CardProperty2;     //第二路卡属性变量
	CARD_PROPERTY m_CardProperty3;     //第三路卡属性变量
	CARD_PROPERTY m_CardProperty4;     //第四路卡属性变量
};

#endif // !defined(AFX_IMAGEMANAGER_H__CBCD6132_E1AD_4958_9131_22D6DC2AAD0E__INCLUDED_)

⌨️ 快捷键说明

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