DIB.h
上传用户:seppec
上传日期:2010-02-09
资源大小:2347k
文件大小:2k
源码类别:

2D图形编程

开发平台:

Visual C++

  1. // DIB.h: interface for the DIB class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_)
  5. #define AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #define HDIB  HANDLE 
  10. #define RADIUS  12
  11. #define m_HEIGHT 600
  12. #define m_WIDTH 600
  13. class DIB  
  14. {
  15. public:
  16. int lenth;
  17. CPoint    GetEdgeCenter(HANDLE hDIB);
  18. BOOL      CompareImg2(HANDLE hDIBBK,HANDLE hDIBCurrent,CPoint pt1,CPoint pt2);
  19. BOOL      ComPareImg(HANDLE hDIB1, HANDLE hDIB2 ,CPoint pt1,CPoint pt2);
  20.     BOOL      MatchImportantPoint(HANDLE hDIB,int CharaterInfo[RADIUS*2+1][RADIUS*2+1][3],CPoint *ImPoint);
  21. HANDLE    CopyHandle(HANDLE hSrc);
  22. void      interPolate(LPBYTE Src,int x,int y, float u,float v, int scanw, int scanh,int *r,int *g,int *b);
  23. HANDLE    ScaleDIB(HANDLE hDIB,float scal_x,float scal_y);
  24. HANDLE    Gradient(HANDLE hDIB);
  25. BOOL      SaveDIB(HDIB hDib, CFile& file);
  26. void      ThinningDIB(HANDLE hDIB);
  27. CPoint   SearchInteriorPoint(CPoint Point,LPBYTE lpDIBBits,WORD wBytesPerLine);
  28. BOOL      IsBorderPoint(CPoint CurrentPoint ,LPBYTE lpDIBBits,WORD wBytesPerLine);
  29. CPoint    NextBorderPoint(CPoint CurrentPoint, LPBYTE lpDIBBits,WORD wBytesPerLine);
  30. HDIB      LoadDIB(LPCTSTR lpFileName);
  31. HDIB      ReadDIBFile(HANDLE hFile);
  32. BOOL      PaintDIBTrue(HDC hDC,LPRECT lpDCRect,HANDLE hDIB,LPRECT lpDIBRect,DWORD dwRop);
  33. WORD      BytePerLine(HANDLE hDIB);
  34. HDIB      ToGray(HANDLE hDIB);
  35. LPBYTE    FindDIBBits(HANDLE hDIB);
  36. long   PixelOffset(int i,int j,WORD wBytePerLine);
  37. int       MedianSearch(int a[9][3],int n,int *r,int *g,int *b);
  38. void   DoMedianFilterDIB(int *r,int *g,int*b,WORD i,WORD j,WORD wBytesPerLine,LPBYTE lpDIBBits);
  39. void   MedianFilterDIB(HANDLE hDIB);
  40. void    WhiteBlack(HANDLE hDIB,unsigned n);
  41. void        LocateImporntPoint(HANDLE hDIB,int Radius,CPoint *pPoint);
  42. DIB();
  43. virtual ~DIB();
  44. public :
  45. BOOL IsScaterPoint(int x,int y,int width,int height,LPBYTE lpData,WORD wBytesPerLine,int threshold,bool lab[m_HEIGHT][m_WIDTH]);
  46. int width;
  47. int height;
  48. private:
  49. };
  50. #endif // !defined(AFX_DIB_H__A2ADDB4C_F0D1_4301_B08F_262BB56BC373__INCLUDED_)