📄 imagemanager.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 + -