ImgProcess.h
上传用户:gzboli
上传日期:2013-04-10
资源大小:471k
文件大小:2k
源码类别:

图片显示

开发平台:

Visual C++

  1. // ImgProcess.h: interface for the CImgProcess class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_IMGPROCESS_H__77CC8C62_E478_465B_9F18_B22239E6A3C7__INCLUDED_)
  5. #define AFX_IMGPROCESS_H__77CC8C62_E478_465B_9F18_B22239E6A3C7__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "dibapi.h"
  10. // Definitions required for convolution image filtering
  11. #define KERNELCOLS 3
  12. #define KERNELROWS 3
  13. #define KERNELELEMENTS (KERNELCOLS * KERNELROWS)
  14. // local use macro
  15. #define PIXEL_OFFSET(i, j, nWidthBytes)
  16. (LONG)((LONG)(i)*(LONG)(nWidthBytes) + (LONG)(j)*3)
  17. //#define Point(x,y) lpPoints[(x)+(y)*nWidth]
  18. // struct for convolute kernel 
  19. typedef struct 
  20. {
  21. int Element[KERNELELEMENTS];
  22. int Divisor;
  23. } KERNEL;
  24. class CImgProcess  
  25. {
  26. private:
  27. public:
  28. CImgProcess();
  29. virtual ~CImgProcess();
  30. // local function prototype
  31. static int compare(const void *e1, const void *e2);
  32. static void DoMedianFilterDIB(int *red, int *green, int *blue, int i, int j, 
  33. WORD wBytesPerLine, LPSTR lpDIBits);
  34. static void DoConvoluteDIB(int *red, int *green, int *blue, int i, int j, 
  35. WORD wBytesPerLine, LPSTR lpDIBits, KERNEL *lpKernel);
  36. static BOOL ConvoluteDIB(HDIB hDib, KERNEL *lpKernel, int Strength, int nKernelNum=1);
  37. static BOOL HighPassDIB(HDIB hDib, int Strength, int nAlgorithm);
  38. static BOOL LowPassDIB(HDIB hDib, int Strength, int nAlgorithm);
  39. static BOOL EdgeEnhanceDIB(HDIB hDib, int Strength, int nAlgorithm);
  40. static BOOL MedianFilterDIB(HDIB hDib);
  41. static BOOL ReverseDIB(HDIB hDib);
  42. static BOOL ErosionDIB(HDIB hDib, BOOL bHori);
  43. static BOOL DilationDIB(HDIB hDib, BOOL bHori);
  44. static BOOL MorphOpenDIB(HDIB hDib, BOOL bHori);
  45. static BOOL MorphCloseDIB(HDIB hDib, BOOL bHori);
  46. static BOOL ContourDIB(HDIB hDib, BOOL bHori);
  47. static BOOL ThinningDIB(HDIB hDib);
  48. static void GetPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints);
  49. static void PutPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints);
  50. static BOOL FFTDIB(HDIB hDIB);
  51. static BOOL DCTDIB(HDIB hDIB);
  52. static BOOL WALhDIB(HDIB hDIB);
  53. };
  54. #endif // !defined(AFX_IMGPROCESS_H__77CC8C62_E478_465B_9F18_B22239E6A3C7__INCLUDED_)