Dib.h
上传用户:pass2008
上传日期:2021-07-05
资源大小:3299k
文件大小:2k
源码类别:

Internet/IE编程

开发平台:

Visual C++

  1. #pragma once
  2. //cximage.lib
  3. //cximagecrtd.lib
  4. //jasper.lib
  5. //jbig.lib
  6. //Jpeg.lib
  7. //libdcr.lib
  8. //mng.lib
  9. //png.lib
  10. //Tiff.lib
  11. //zlib.lib
  12. class CDib
  13. {
  14. public:
  15. CDib(void);
  16. public:
  17. virtual ~CDib(void);
  18. public:
  19. BOOL imageLoadOperation(LPCTSTR lpszPathName, UINT nOperatorSel);
  20. private:
  21. enum nImageFormat{
  22. IMG_FORMAT_BMP,
  23. IMG_FORMAT_JPEG,
  24. IMG_FORMAT_GIF,
  25. IMG_FORMAT_PNG,
  26. IMG_FORMAT_TIFF,
  27. IMG_FORMAT_DEFAULT
  28. };
  29. unsigned char* m_pDib;
  30. unsigned char* m_pDibBits;
  31. DWORD m_dwDibSize;
  32. BITMAPINFOHEADER *m_pBIH;
  33. RGBQUAD *m_pPalette;
  34. CPalette m_Palette;
  35. int m_nPaletteEntries;
  36. int m_Width;
  37. int m_Height;
  38. int analysisImageFormat(LPCTSTR lpszPathName); //只分析以上五种图像格式
  39. BOOL loadIntoMemory(LPCTSTR lpszPathName);
  40. CString alterFileExtension(LPCTSTR lpszPathName, int nImgFormat);
  41. BOOL saveAfterProcess(LPCTSTR lpszPathName);
  42. BOOL imageEdgeOperation(UINT nOperatorSel); 
  43. BOOL LaplaceOperator(void); // <1> laplace算子 
  44. BOOL CannyOperator(double sigma, double dRatLow, double dRatHigh); // <2> canny算子
  45. void CreatGauss(double sigma, double** pdKernel, int* pnWidowSize);
  46. void GaussianSmooth(unsigned char* pResult, double sigma);
  47. void Grad(unsigned char* pGray, int* pGradX, int* pGradY, int* pMag);
  48. void NonmaxSuppress(int* pMag, int* pGradX, int* pGradY, unsigned char* pNSRst);
  49. void Hysteresis(int* pMag, double dRatLow, double dRatHigh, unsigned char* pResult);
  50. void EstimateThreshold(int* pMag, int* pThrHigh, int* pThrLow, unsigned char* pGray, double dRatHigh, double dRatLow);
  51. void TraceEdge(int y, int x, int nThrLow, unsigned char* pResult, int* pMag);
  52. };