📄 dib.h
字号:
// DIB.h: interface for the DIB class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_)
#define AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define HDIB HANDLE
#define RADIUS 12
#define m_HEIGHT 600
#define m_WIDTH 600
#define AREAPIXEL 600
#define Wcb 46.97
#define WLcb 23
#define WHcb 14
#define Wcr 38.76
#define WLcr 20
#define WHcr 10
#define Kl 125
#define Kh 188
#define Ymin 16
#define Ymax 235
#define ImgRange 600
class DIB
{
public:
bool lab[ImgRange][ImgRange];
int lenth;
void Erasion2(HANDLE hDIB);
void MouseMap(LPBYTE lpRgb, const LPBYTE lpYcc, WORD wBytesPerLine, CRect faceLocation);
void EyeMapb(LPBYTE lpRgb, const LPBYTE lpYcc, WORD wBytesPerLine, CRect faceLocation);
void EyeMapR(LPBYTE lpRgb, const LPBYTE lpYcc, WORD wBytesPerLine, CRect faceLocation);
void Erasion(HANDLE hDIB);
void RgbtoYcb(HANDLE hDIB, LPBYTE lpYcb);
void ErasionFalseArea(HANDLE hDIB);
void FaceLocate(HANDLE hDIB, CRect faceLocation[10], int &faceNum);
void EyeMapL(LPBYTE lpRgb, WORD wBytesPerLine, CRect faceLocation);
void eyeMap(LPBYTE lpResult, bool eyemapc[][ImgRange], bool eyemapl[][ImgRange], bool lab[][ImgRange], WORD wBytesPerLine, CRect faceLocation);
void RecursiveCal(LPBYTE lpData, int y, int x, WORD wBytesPerLine, int &pixelNum, int num);
void EyeMapC(LPBYTE lpRgb, const LPBYTE lpYcc, WORD wBytesPerLine, CRect faceLocation);
void RecursiveLocateRect(LPBYTE lpData,WORD wBytesPerLine, int y, int x, int num, CRect &faceRect);
void faceear(LPBYTE lpYcc, WORD wBytesPerLine, int height,int width, bool flag[ImgRange][ImgRange]);
int _WCr(int Y);
int _Cr(int Y);
int _WCb(int Y);
void YccTransform(LPBYTE lpYcc,WORD wBytesPerLine,int height,int width);
int _Cb(int Y);
LPBYTE YcctoRgb(LPBYTE lpYcc,WORD wBytesPerLine,int height,int width);
BOOL FaceModeling(int Cr,int Cb);
BOOL MatchImportantPoint(HANDLE hDIB,int CharaterInfo[RADIUS*2+1][RADIUS*2+1][3],CPoint *ImPoint);
HANDLE CopyHandle(HANDLE hSrc);
BOOL SaveDIB(HDIB hDib, CFile& file);
CPoint SearchInteriorPoint(CPoint Point,LPBYTE lpDIBBits,WORD wBytesPerLine);
HDIB LoadDIB(LPCTSTR lpFileName);
HDIB ReadDIBFile(HANDLE hFile);
BOOL PaintDIBTrue(HDC hDC,LPRECT lpDCRect,HANDLE hDIB,LPRECT lpDIBRect,DWORD dwRop);
WORD BytePerLine(HANDLE hDIB);
HDIB ToGray(HANDLE hDIB);
LPBYTE FindDIBBits(HANDLE hDIB);
long PixelOffset(int i,int j,WORD wBytePerLine);
int BOUND(int a ,int b ,int rgb);
void WhiteBlack(HANDLE hDIB,unsigned n);
DIB();
virtual ~DIB();
public :
void DdaLine(CPoint from,CPoint end,LPBYTE lpData,WORD wBytesPerLine);
void EllipseFace(HANDLE hDIB,CPoint mouth,CPoint eye1,CPoint eye2);
void EyeCenter(HANDLE hDIB, CRect faceLocation, CPoint &eye1,CPoint &eye2);
void MouthCenter(HANDLE hDIB, CRect faceLocation, CPoint &mouthLocation);
void DeleteScatePoint(HANDLE hDIB);
void DeleteFasleEye(HANDLE hDIB,CRect);
void Dilation(HANDLE hDIB);
BOOL LightingCompensate(HANDLE hDIB);
BOOL IsScaterPoint(int x,int y,int width,int height,LPBYTE lpData,WORD wBytesPerLine,int threshold,bool lab[m_HEIGHT][m_WIDTH]);
int width;
int height;
private:
};
#endif // !defined(AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -