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

📄 image.h

📁 opencv实现的人体运动跟踪源码
💻 H
字号:
/***************************************************************/
/*文件名:     image.h               				           */
/*文件描述:                                                   */
/*相关文件:   global.h, global.cpp, image.cpp                 */
/*主要函数:                                                   */
/*提交日期:                        作  者:刘岩、山世光       */
/*编 辑 器: Visual C++                                        */
/*版权:哈尔滨工业大学智能接口实验室 中科院计算所数字媒体实验室*/
/*版权说明:任何使用必须保留版权信息和历史纪录信息			   */
/*修改纪录:												   */
/*日  期        版本        修改人         修改内容            */
/*03/22/1999    2.0         山世光         ---------           */
/*05/22/2000    3.0         山世光         ---------           */
/***************************************************************/

#ifndef	_IMAGE_H_
#define	_IMAGE_H_


struct dis_cr_cb {
	double distance;
	BYTE   cr;
	BYTE   cb;
};

class CImage : public CObject
{
	DECLARE_SERIAL(CImage)
private:
	DWORD Transform(WORD width);
	DWORD ByteNumForOneLine(WORD nDIBWidth, int nBpp);
public:
	BOOL		m_bIsDIB;
    CPalette*	m_pPal;	    
    BYTE*		m_pDib;     // DIB data buffer
    DWORD		m_dwLength;  // total buffer length
    BYTE*       m_pData; 
	CString     m_strFileName;
public:
	CImage(CImage& img, CSize newSize);
    CImage();
    CImage(CDC* pDC, int nBt = 0, BOOL bCompr = FALSE); // nBt = 0 means use default bits/pixel
    CImage(const CImage& img);//copy constructor
    CImage(CImage& img,CPoint start,CSize size);
    CImage(CSize size,int NumColor=256,int Bits=8);
    CImage& operator=(const CImage& img);
	CImage(CImage& img, float scale);
    virtual ~CImage();

	void	ImageClear();
	BOOL	WriteToFile(CFile* pFile);
	BOOL	ReadFromFile(CFile* pFile);
    BOOL	WriteAsBMP(CFile* pFile);
	BOOL	WriteAsPGM(CFile* pFile);
	BOOL	WriteAsData(CFile* pFile);
	BOOL	WriteToFile(CString filename);
	BOOL	SaveAsText(CString	 filename, BOOL	bIsBinary = FALSE);
	BOOL	ReadFromFile(CString filename);
	BOOL	ReadFromPGM(CFile* pFile);
	BOOL	ReadFromBMP(CFile* pFile);
	BOOL	ReadFromIMG(CFile* pFile);
	BOOL	ReadFromDAT(CFile* pFile);

    virtual void Serialize(CArchive &ar);

    CBitmap* MakeBitmap(CDC* pDC, CSize& bmSize); // bmsize returned
	BOOL	CreateDIBPalette();
	BOOL	CreateGreyPalette();
	BOOL	CreateGreyDib();

    BOOL	Display(CDC*, CPoint origin) const;
    BOOL	Stretch(CDC*, CPoint origin, CSize size) const;

	WORD	Bits() const;  // bits per pixel
    WORD	NumColors() const;//real colors 
    DWORD	Length() const;
    WORD	Height() const;
    WORD	Width() const;
    CSize	Size() const;
	CPalette* Palette() const;

	UINT	SetPalette(CDC* pDC,BOOL bBackground=FALSE) const;
	void	SetDIB(BOOL Flag=TRUE);
	BYTE*	Dib();
	BYTE*	Data();
	void	SetMonoColors(DWORD dwForeground, DWORD dwBackground);
    BOOL	GetMonoColors(DWORD& dwForeground, DWORD& dwBackground);
protected:
	LPBITMAPINFOHEADER	BMInfoHdPtr() const;
    LPBITMAPINFO		BMInfoPtr() const;
	RGBQUAD*			BMColorTblPtr() const;
    BOOL				AllocateMemory(BOOL bRealloc = FALSE);
	BYTE				Get8NeiborAver(BYTE* pGreyData, WORD w, WORD h, CPoint pos);
/////////the property of the image
public:
	
	BOOL ValidImage(void);
	BYTE		MeanGrey();
	double		Contrast();
	double		CleanMeasure();
	double		NoiseMeasure();
	double		Entropy();
	double		ImageQuality();
};

#endif

⌨️ 快捷键说明

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