HistoDialog.cpp
上传用户:jjiangjuan
上传日期:2013-03-27
资源大小:59k
文件大小:2k
源码类别:

波变换

开发平台:

Visual C++

  1. // HistoDialog.cpp: implementation of the CHistoDialog class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "LPR.h"
  6. #include "HistoDialog.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CHistoDialog::CHistoDialog()
  16. {
  17.  first = false;
  18. }
  19. CHistoDialog::~CHistoDialog()
  20. {
  21.  
  22. }
  23. void CHistoDialog::Draw(BYTE lpBmpData[COL][ROW],int GrayLvlCount[])
  24. {
  25. int i,j;
  26. CString str;
  27. CClientDC pDC(hWnd);
  28. pDC.Rectangle(400,25,700,300);
  29.     if(first == true)
  30. {
  31. for(i = 0;i < 256;i++)
  32. {
  33. GrayLvlCount[i] = 0;
  34. }
  35. for(i=0;i<=COL;i++)
  36. for(j=0;j<=ROW;j++)
  37.             GrayLvlCount[lpBmpData[i][j]]++;
  38.    
  39.     // 创建画笔对象
  40. CPen* pPenRed = new CPen;
  41. // 红色画笔
  42. pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));
  43. // 创建画笔对象
  44. CPen* pPenBlue = new CPen;
  45. // 蓝色画笔
  46. pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0, 255));
  47. // 创建画笔对象
  48. CPen* pPenGreen = new CPen;
  49. // 绿色画笔
  50. pPenGreen->CreatePen(PS_DOT,1,RGB(0,255,0));
  51. // 选中当前红色画笔,并保存以前的画笔
  52. CGdiObject* pOldPen = pDC.SelectObject(pPenRed);
  53.     
  54. // 绘制坐标轴
  55.     pDC.MoveTo(originX,originY);
  56. pDC.LineTo(originX + 280,originY);//横坐标
  57. pDC.MoveTo(originX,originY);
  58. pDC.LineTo(originX,originY - 245);//纵坐标
  59. pDC.LineTo(originX - 3 , originY-245+5);
  60. pDC.MoveTo(originX,originY - 245);
  61. pDC.LineTo(originX + 3,originY - 245 + 5);//纵坐标箭头
  62. pDC.MoveTo(originX + 280,originY);
  63. pDC.LineTo(originX + 280 - 5 , originY - 3);
  64. pDC.MoveTo(originX + 280,originY);
  65. pDC.LineTo(originX + 280 - 5 ,originY + 3);//横坐标箭头
  66. // 更改成蓝色画笔
  67. pDC.SelectObject(pPenBlue);
  68. for(i = 0; i < 256; i++)
  69. {
  70. pDC.MoveTo(originX + i,originY);
  71. pDC.LineTo(originX + i,int(originY - 15*245*double(GrayLvlCount[i])/double(COL*ROW)));
  72. }
  73. pDC.SelectObject(pOldPen);
  74. }
  75. }