PointPro.h
上传用户:xayxjz
上传日期:2022-08-07
资源大小:2188k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. // PointPro.h: interface for the CPointPro class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_POINTPRO_H__3FE49A8B_6202_4705_BC7A_C5141872F61A__INCLUDED_)
  5. #define AFX_POINTPRO_H__3FE49A8B_6202_4705_BC7A_C5141872F61A__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. class CPointPro : public CObject  
  10. {
  11. DECLARE_DYNCREATE(CPointPro)
  12. public:
  13. BOOL IsBlackandWhite256(CDibObject *pDibObject = NULL);
  14. BOOL ReplaceColorPal(CDibObject *pDibObject , BYTE *bpColorsTable);
  15. BOOL InteEqualize(CDibObject *pDibObject = NULL);
  16. BOOL LinerTran(float fa = 1.0, float fb = 0.0, int nX1 = -1, int nY1 = -1, int nX2 = -1, int nY2 = -1, CDibObject *pDibObject = NULL);
  17. BOOL GrayStretch(BYTE bX1 = 0, BYTE bY1 = 0, BYTE bX2 = 255, BYTE bY2 = 255, int nX1 = -1, int nY1 = -1, int nX2 = -1, int nY2 = -1, CDibObject *pDibObject = NULL );
  18. BOOL IsGray256( CDibObject *pDibObject = NULL );
  19. int *CreateHueHist(int Thresh, CDibObject *pDibObject = NULL );
  20. BOOL Threshold(int Thresh = 128, int Mode = 1, BOOL bSetPalette = TRUE, CDibObject *pDibObject = NULL);
  21. int FindThresh_Auto( CDibObject *pDibObject = NULL );
  22. int FindThresh_Discriminant( CDibObject *pDibObject = NULL );
  23. CPointPro();
  24. CPointPro( CDibObject * );
  25. BOOL MakeGray256( BYTE mGrayType = 0, CDibObject *pDibObject = NULL );
  26. void SetDibObjectClass( CDibObject * );
  27. int *GetHistogram( int nX1 = -1, int nY1 = -1, int nX2 = -1, int nY2 = -1, CDibObject *pDibObject = NULL );
  28. //通道操作
  29. //分离通道
  30. BOOL SplitChannels(CDibObject *pRed, CDibObject *pGreen, CDibObject *pBlue);
  31. //合并通道
  32. BOOL CombineChannels(CDibObject *pRed, CDibObject *pGreen, CDibObject *pBlue);
  33. //获取合成通道
  34. BOOL GetMixedChannel(CDibObject *pMixed);
  35. //获取红色通道
  36. BOOL GetRedChannel(CDibObject *pRed);
  37. //获取绿色通道
  38. BOOL GetGreenChannel(CDibObject *pGreen);
  39. //获取蓝色通道
  40. BOOL GetBlueChannel(CDibObject *pBlue);
  41. //诊断调试函数
  42. #ifdef _DEBUG
  43. virtual void Dump( CDumpContext &dc) const;
  44. virtual void AssertValid() const;
  45. #endif
  46. protected:
  47. int *CreateHistogram( int, int, int, int, unsigned char *, RGBQUAD *, int, CDibObject *pDibObject = NULL );
  48. CDibObject *m_pDibObject;
  49. private:
  50. unsigned char * DoublePointLinerTran(BYTE bX1 = 0, BYTE bY1 = 0, BYTE bX2 = 255, BYTE bY2 = 255);
  51. unsigned char *PointSlopeLinerTran(float fa, float fb);
  52. };
  53. #endif // !defined(AFX_POINTPRO_H__3FE49A8B_6202_4705_BC7A_C5141872F61A__INCLUDED_)